Skip to main content

Problem:

When a Tuxedo service program (exe) contains a call to a sub-program,  the call to the sub-program fails.  

Resolution:

Using Net Express, all this is hidden from you as the CBLLINK utility does this all for you.   This is an issue with how the Tuxedo Service EXE is being built. The BEA supplied makefiles assume that only one COBOL module will be linked into the EXE.   It is not running CBLNAMES as part of the process.

CBLNAMES takes as a parameter all the COBOL objs that are to be linked, and creates "cblds.obj" which should be linked into the main exe.  The BEA makefile for the client uses CBLNAMES, but the server does not.   As this step has not been done the sub-program is not found when called unless built as a separate DLL.

The Tuxedo build process needs to link in other Tuxedo specific C modules and objs.

Change the make file to run cblnames and also link in cblds.obj. This should resolve the problem.

Below is an example of how to do this:

#

(c) 2003 BEA Systems, Inc. All Rights Reserved.

#

Copyright (c) 1996 BEA Systems

#

All rights reserved

#

#

THIS IS UNPUBLISHED PROPRIETARY

#

SOURCE CODE OF BEA Systems

#

The copyright notice above does not

#

evidence any actual or intended

#

publication of such source code.

#

#ident

"@(#) samples/atmi/CSIMPAPP/csimpapp.nt

$Revision: 1.5 $"

all: CSIMPSRV.exe

CSIMPSRV.exe: PUA027-SEL.obj CSIMPSRV.obj TPSVRINIT.obj

cblnames -v CSIMPSRV.obj PUA027-SEL.obj

buildserver -C -o CSIMPSRV -s PSA027 -f PUA027-SEL.obj -f TPSVRINIT.obj -f CSIMPSRV.obj -f cbllds.obj

.cbl.obj:

cobol $*.cbl obj litlink MAKESYN "COMP-5" = "COMP" ANIM;

Old KB# 7016