[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference microw::acmsxp

Title:ACMSxp product questions and comments
Notice:Refer to notes 1 through 11 for conference information
Moderator:DUCAT::ROSCOE
Created:Tue Oct 05 1993
Last Modified:Thu Jun 05 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:282
Total number of notes:1134

213.0. "Q: How to reuse Oracle connection is same proc?" by TKOV60::OKAMURA (H.Okamura PS4-2/EJD3/PSC, Japan) Wed Sep 25 1996 12:27

T.RTitleUserPersonal
Name
DateLines
213.1Use -T when compiling the processing group specification.DUCAT::ROSCOEWed Sep 25 1996 15:3612
213.2It worked properlyTKOV60::OKAMURAH.Okamura PS4-2/EJD3/PSC, JapanThu Sep 26 1996 11:577
213.3againJITMIA::OKAMURAH.Okamura PS4-2/EJD3/NSIS, JapanMon Mar 17 1997 09:3028
I've encounterd same problem again.The environment of this demo is followings.

  OS : WindowsNT Workstation 4.0(Japanese) for Intel
  DCE: Digital DCE V1.1C
  TP : ACMSxp for WindowsNT V3.0(patch version)
  DB : Oracle Enterprise Server for WindowsNT/Intel R7.3.2(Japanese)
       Oracle Pro*C/C++ 2.2.2.0.4

I've read ACMSxp Help Section 'Compiling STDL Source' and compiled the 
Processing Group Definition with '-T simple' and tha caller tasks and the 
Task Group Definition with '-T single -t' and '-T single' switch.

Also, I've added INITIALIZATION/TERMINATION procedure definition into the 
Procedure Group Definition to CONENCT/COMMIT WITH RELEASE.

However, I've encounterd ORA-01012 error which means 'Not logged in yet 
message has displayed for each transaction'.

Although I seeks this issue in the ACMSxp documentation titled 'ACMSxp 
Developing and Managing Applications', I could not find the solution.

Since Oracle Server for WindowsNT has not support XA interface yet,
I should chose 'single' transaction model.

If anybody has any information for this issue, please let me know.

Thanks,
Hiroaki
213.4DUCAT::ROSCOEMon Mar 17 1997 18:537
Hi,

As I stated in 213.1 in V3.0 the meaning of the -T switch has changed.
In V3.0 -T selects the transaction type.  To force processing procedure code 
to execute on the main thread use the -M switch.   If after compiling with
the -M switch the not logged error still occurs try removing the code from the 
init routine and see if you still get the error message.
213.5ThanksTKOV60::OKAMURAH.Okamura PS4-2/EJD3/NSIS, JapanTue Mar 18 1997 04:14232
Rich-san,

I missunderstood the meaning of 'transaction model'. The '-M' switch 
disappeared the not logged error and my application worked properly.

I'll attach my Makefile which based on employee.mak as a sample using Oracle.

Thanks,
Hiroaki

[Server Relation]

Task Groups         Proc Groups  TXN model

prTG -------------> prPG         none

sfTG -+---------+
      |         +-> d1PG         single
      +-> d1TG -+

[Makefile]

#####################################################################
#
# COPYRIGHT (C) DIGITAL EQUIPMENT CORPORATION 1995
# ALL RIGHTS RESERVED.  UNPUBLISHED RIGHTS RESERVED UNDER THE
# COPYRIGHT LAWS OF THE UNITED STATES.
#
# THIS SOFTWARE IS PROPRIETARY TO AND EMBODIES THE CONFIDENTIAL 
# TECHNOLOGY OF DIGITAL EQUIPMENT CORPORATION.  POSSESSION, USE, OR
# COPYING OF THIS SOFTWARE AND MEDIA IS AUTHORIZED ONLY PURSUANT 
# TO A VALID WRITTEN LICENSE FROM DIGITAL EQUIPMENT CORPORATION
# OR AN AUTHORIZED SUBLICENSOR.
#
# RESTRICTED RIGHTS: USE, DUPLICATION, OR DISCLOSURE BY THE
# U.S. GOVERNMENT IS SUBJECT TO RESTRICTIONS AS SET FORTH IN
# SUBPARAGRAPH (C) (1) (II) OF DFARS 252.227-7013, OR IN FAR
# 52.227-19, OR IN FAR 52.227-14 ALT. III, AS APPLICABLE.
#
#####################################################################
#
# This is the make file for the employee sample server files and
# employee_setup_db.exe.
#
# This makefile checks the environment variable DEBUG_BUILD to
# see whether or not to build in debug mode or not.  If DEBUG_BUILD
# is TRUE, a debug build is done.  If DEBUG_BUILD is not defined or
# is anything other than TRUE, then a non-debug build is done.
#

!if "$(DEBUG_BUILD)" == ""
DEBUG_BUILD = FALSE
!endif

#
# Define the symbols used in the compiles and links
#

!if "$(DEBUG_BUILD)" == "DEBUG"
# Set debug symbols
ldebug = /debug /debugtype:both
cdebug = -Zi -Od
stdl_debug = -g -k
!else
ldebug=
cdebug =
stdl_debug =
DEBUG_BUILD = "RELEASE"
!endif

stdl_txnmodel = -T single

do_link = link -$(DEBUG_BUILD) -subsystem:console $(ldebug) /out:$@ 
/map:$*.map

#
# The follwoings are default rule to produce object files from STDL files
#
.SUFFIXES: .stdl .pc .c
.stdl.obj:
    stdl -X -t $(stdl_debug) $<
.pc.c.:
    proc22 threads=no $<
.c.obj:
    cl /DACMSxp /If:\orant\pro22\c\include /W3 /c /MD /Fo$@ $(cdebug) $<

#
# The declaration for the location symbols for objects
#
SRC_PATH    = G:\BUPPIN\SRC
SERVER_PATH = G:\BUPPIN\SERVER
CLIENT_PATH = G:\BUPPIN\CLIENT
JACKET_PATH = G:\BUPPIN\JACKET

#
# The declaration of ACMSxp and Oracle Pro*C libraries
#
linklib = tps.lib stdlrt.lib libdce.lib pthreads.lib
orcllib = f:\orant\pro22\lib\msvc\sqllib18.lib

#
# The declaration for the task and procedure file collection
#
# The task objects for 'prTG'
taskgrp1 = prTG.stdl
taskobj1 = tkharai_prt.obj
# The task objects for 'sfTG'
taskgrp2 = sfTG.stdl
taskobj2 = tkharai_ud.obj
# The task objects for 'd1TG'
taskgrp3 = d1TG.stdl
taskobj3 = tkdbsc_buppin.obj \
           tkdbud_buppin.obj \
           tkdbud_rireki.obj

#
# The declaration for the task and procedure file collection
#
# The processing procedure objects for 'prPG'
procgrp1 = prPG.stdl
procobj1 = psharai_prt.obj
# The processing procedure objects for 'd1PG'
procgrp2 = d1PG.stdl
procobj2 = psdbsc_buppin.obj \
           psdbud_buppin.obj \
           psdbud_rireki.obj \
           sqlerror.obj \
           InitTerm_proc.obj

install: server
         copy prtg_svr.exe $(SERVER_PATH)
         copy prtg_1_0.idf $(SERVER_PATH)
         copy sftg_svr.exe $(SERVER_PATH)
         copy sftg_1_0.idf $(SERVER_PATH)
         copy d1tg_svr.exe $(SERVER_PATH)
         copy d1tg_1_0.idf $(SERVER_PATH)
         copy prpg_svr.exe $(SERVER_PATH)
         copy prpg_1_0.idf $(SERVER_PATH)
         copy d1pg_svr.exe $(SERVER_PATH)
         copy d1pg_1_0.idf $(SERVER_PATH)

clean:
    -del /q temp
    -rd     temp
    -del /q Record.h
    -del /q *TG.h
    -del /q *PG.h
    -del /q *.obj
    -del /q *.exe
    -del /q *.map
    -del /q *.lis
    -del /q *.err
    -del /q *.idf

server: prtg_svr.exe sftg_svr.exe d1tg_svr.exe prpg_svr.exe d1pg_svr.exe

client: ho_cli.exe

prtg_svr.exe: $(taskobj1) prtg_svr.obj prpg_cli.obj
    $(do_link) $(taskobj1) prtg_svr.obj prpg_cli.obj $(linklib)

sftg_svr.exe: $(taskobj2) sftg_svr.obj d1tg_cli.obj
    $(do_link) $(taskobj2) sftg_svr.obj d1tg_cli.obj $(linklib)

d1tg_svr.exe: $(taskobj3) d1tg_svr.obj d1pg_cli.obj
    $(do_link) $(taskobj3) d1tg_svr.obj d1pg_cli.obj $(linklib)

prpg_svr.exe: prpg.h $(procobj1) prpg_svr.obj
    $(do_link) $(procobj1) prpg_svr.obj $(linklib) $(orcllib)

d1pg_svr.exe: d1pg.h $(procobj2) d1pg_svr.obj
    $(do_link) $(procobj2) d1pg_svr.obj $(linklib) $(orcllib)

ho_cli.exe: Record.h prTG.h sfTG.h d1TG.h ho_cli.obj prtg_cli.obj 
sftg_cli.obj d1tg_cli.obj
    $(do_link) $* prtg_cli.obj sftg_cli.obj d1tg_cli.obj $(linklib)

Record.h: Record.stdl
    stdl -X $(stdl_txnmodel) -c -n records $(stdl_debug) $?

prTG.h: $(taskgrp1)
    stdl -X $(stdl_txnmodel) -c -n prototypes $(stdl_debug) $?

prtg_svr.obj: $(taskgrp1)
    stdl -X $(stdl_txnmodel) -c -n prototypes $(stdl_debug) $?

prtg_cli.obj: $(taskgrp1)
    stdl -X $(stdl_txnmodel) -c -n prototypes $(stdl_debug) $?

sfTG.h: $(taskgrp2)
    stdl -X $(stdl_txnmodel) -c -n prototypes $(stdl_debug) $?

sftg_svr.obj: $(taskgrp2)
    stdl -X $(stdl_txnmodel) -c -n prototypes $(stdl_debug) $?

sftg_cli.obj: $(taskgrp2)
    stdl -X $(stdl_txnmodel) -c -n prototypes $(stdl_debug) $?

d1TG.h: $(taskgrp3)
    stdl -X $(stdl_txnmodel) -c -n prototypes $(stdl_debug) $?

d1tg_svr.obj: $(taskgrp3)
    stdl -X $(stdl_txnmodel) -c -n prototypes $(stdl_debug) $?

d1tg_cli.obj: $(taskgrp3)
    stdl -X $(stdl_txnmodel) -c -n prototypes $(stdl_debug) $?

prPG.h: $(procgrp1)
    stdl -X -T multi -c -u 276cb4a2-991d-11d0-9e2b-08002b3c1af8 -v 1.0 
$(stdl_debug) $?

prpg_svr.obj: $(procgrp1)
    stdl -X -T multi -c -u 276cb4a2-991d-11d0-9e2b-08002b3c1af8 -v 1.0 
$(stdl_debug) $?

prpg_cli.obj: $(procgrp1)
    stdl -X -T multi -c -u 276cb4a2-991d-11d0-9e2b-08002b3c1af8 -v 1.0 
$(stdl_debug) $?

d1PG.h: $(procgrp2)
    stdl -X -M $(stdl_txnmodel) -c -u 3b3aad3b-991d-11d0-9e2b-08002b3c1af8 
-v 1.0 $(stdl_debug) $?

d1pg_svr.obj: $(procgrp2)
    stdl -X -M $(stdl_txnmodel) -c -u 3b3aad3b-991d-11d0-9e2b-08002b3c1af8 
-v 1.0 $(stdl_debug) $?

d1pg_cli.obj: $(procgrp2)
    stdl -X -M $(stdl_txnmodel) -c -u 3b3aad3b-991d-11d0-9e2b-08002b3c1af8 
-v 1.0 $(stdl_debug) $?


213.6I'm happy to hear everything is now working properlyDUCAT::ROSCOETue Mar 18 1997 11:420