Browse all forums dedicated to the Rocket® COBOL product family.
Recently active
Created On: 2010-03-23 Problem: Using something like cron jobs or some other type of scheduler, which runs multiple mfsort routines at the same time, returns return-code =8. The problem is that return-code=8 is set by SYSOUT being locked. To run the sorts concurrently you'll need to start each sort in a different directory. Resolution: During a sort or merge operation, mfsort uses temporary work files located in either the default tmp directory or in the directory specified by the TMPDIR environment variable. During the sort operation - mfsort copies all the records from each of the input files into the temporary working directory. The work files are then sorted or merged according to its key description. After being sorted or merged in the work files, the records are copied to each of the output files. The error occurs when using the same temporary working directory that sorts the file. To randomly assign the temporary working directory
Created On: 2010-04-27 Problem: When compiling, an error message appears: "Ignored - nestcall". What exactly is the NESTCALL directive, and what can be done to make the compilation error go away? Resolution: Nested program syntax is where a COBOL program is defined inside another COBOL program, for example, in the following 18 lines of code: 000001 identification division.000002 program-id. main-prog.000003 working-storage section.000004 01 data-item-1 pic x(5) is global.000005 procedure division.000006 move "hello" to data-item-1.000007 call "sub-prog-1".000008 stop run.000009000010 identification division.000011 program-id. sub-prog-1.000012 environment division.000013 d
Created On: 2010-04-27 Problem: Although compiler directives can usually be specified in the file $COBDIR/etc/cobopt, in some circumstances, directives specified in that file might not take effect. Resolution: The explanation is that, when operating in 64-bit mode, a person must modify the file: $COBDIR/etc/cobopt64 instead of the file: $COBDIR/etc/cobopt To solve the problem, first verify the operative bit-mode using the “cobmode” command, then make modifications to the corresponding “cobopt” file. Old KB# 30879
Created On: 2010-04-14 Problem: When installing 8.1.2 AcuXDBC as a standalone product, the first time that it is used an error “The System cannot execute the specified program” is displayed. Resolution: Install the redistributable files from Microsoft for Visual Studio 2008: http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2&displaylang=en Incident #2438288 Old KB# 30922
Created On: 2010-04-22 Problem: In a linux server, ACUCOBOL-GT runtime has to be relinked to Oracle libraries so that Acu4GL can work properly.Only shared libraries version of runtime can be linked with Oracle (or other databases). At the end of the relink process it’s common to get this error running the new runtime:oracle@linux:/usr/acu812/lib> ./runcbl -vv./runcbl: error while loading shared libraries: libclntsh.so.11.1: cannot open shared object file: No such file or directory Resolution: To provide to runtime all the libraries it needs to work, an environment variable called LD_LIBRARY_PATH must be set.It shall contain the full path to ACUCOBOL-GT LIB directory and the full path to Oracle LIB directory. This is an example of how to set this variable:Export LD_LIBRARY_PATH=/usr/acu812/lib:/usr/app/oracle/product/11.2.0/client_1/lib:$LD_LIBRARY_PATH Note: it is highly suggested to add $LD_LIBRARY_PATH at the end of the string, so that no previous value of this
Created On: 2010-03-08 Problem: In the most common environments, Vision files are accessed and modified by Runtime and AcuXDBC at the same time. This can cause access conflicts, especially when Transactions are involved. Resolution: Acucobol-GT documentation reports that “A transaction is a group of related file operations that are treated as an indivisible unit. The purpose of defining such transactions is to ensure that related files can be restored to a consistent state when errors occur.” Here it is how transactions can be turned on in an AcuXDBC environment and how they work.In the acuxdbc.cfg file, these are the variables that turn on transactions:transactions ontransaction_processing onTo enable transaction logging and encryption, turn on these variables:# logging off# log_encrypt o
Created On: 2010-03-17 Problem: I want my COBOL application to be able to send a message to a UNIX user (To inform, for example, that a specific event occurred). How do I proceed? Resolution: Code is pasted and attached to this KB. Note it sends a message using the UNIX write command using as the destination user an environment variable named here $DESTUSER ( for convenience of the test,: export DESTUSER=$USER launch the compiled sample working-storage section. 01 MUcmd. 02 filler pic x(5) value "write". 02 filler pic x value spaces. 02 uid &n
Created On: 2010-03-26 Problem: We created an application COBOL with a Language C module that call the C fucntion malloc in 32bits mode. This application runs fine. We tried it in 64-bit module and the following error is displayed: Execution error : file 'name' error code: 114, pc=p, call=c, seg=s Resolution: In 64bits the Language C module must include the file stdlib.h . Example #include <stdio.h>#include <stdlib.h>#include <pthread.h> typedef struct s_resultat { int n_char ; int n_line ; } Resultat;void * one_file( arg )void *arg;{ Resultat * res = ( Resultat *) malloc ( sizeof(Resultat)); char * filename = ( char *) arg;/* sp2 ( &( res->n_line) , & ( res->n_char ));*/ printf(" %d %d \\n",res->n_line,res->n_char); res->n_char = res->n_line = 0; pthread_exit (( void *)res); return ( void *) res;} Old KB# 30870
Created On: 2010-03-17 Problem: If a C function returns a pointer on a String ( char *) or an array of pointers (char **) how do I proceed to get the values of pointers and array of pointers in a COBOL program? Resolution: The demonstration is attached and contains: A COBOL program named callretPtr.cbl A C program named retPtr.c A script docl.bat file to be run on Windows environment (with Net Express and the C compiler on-line) To compile and link and run the code A script docl.sh to be run on UNIX To compile and link and run the code Pasted is the STDOUT of the demo run: CallretPtr*--> C: retPtr: Bonjour*--> COBOL: Bonjour*--> C: retPtrTB: Bonjour Hello Bonjourno*--> COBOL: 1: Bonjour*--> COBOL: 2: Hello*--> COBOL: 3: Bonjourno The code is quite short: cal
Created On: 2010-03-31 Problem: When the WITH LOCK ON MULTIPLE RECORDS clause is specified for a file, we would like to unlock a specific record. Resolution: When the program locks several records, the one of the following statement releases all record locks : CLOSE the file COMMIT ROLLBACK UNLOCK An explicit call to the File Handler allows to release the lock of one record . To use this explicit call it is necessary to : Allocate data areas for the File Contrel Description ( FCD) Compile the program with the FCDREG directive The syntax of the explicit call is : CALL "EXTFH" USING OPCODE FCD OPCODE : file handler operation code : PIC XX VALUE X"FA0F". FCD : The data area that must be intialize to the specific locked re
Created On: 2010-03-17 Problem: I prefer that my COBOL application sends a message to a local Windows user or to a local or remote Windows computer to inform, for example if a specific event occurrs such as an error. How do I proceed? Resolution: Please find the code attached to this KB. Simply use the Microsoft command Net Send. See that the demonstration attached uses an Error handler and the RTS error which occurs in the code is sent as an Alert message. Note that the Net Send Microsoft command implies the Microsoft Service named “Messenger” to be started. (Microsoft Service Messenger: Transmits net send and alerter service messages between clients and servers. This service is not related to Windows Messenger. If this service is stopped, Alerter messages will not be transmitted.) Attachments CobNetSend.cbl Old KB# 30864
Created On: 2010-04-19 Problem: To generate Cobol records that contain XML syntax extensions , the customer uses the format cbl2xml XMLschema .Cbl2xml may generate a data structure like:04 act identified by "act" count in act-count. 05 MyName PIC X(90) identified by "MyName" . ..........05 more identified by "more". 06 MyName PIC X(90) identified by "MyName".When coding MOVE "Harry" to MyName of act.The following compiler error message is returned:COBCH0005S User-name MyName not uniqueThe identifier MyName at the 05-level cannot be used in the COBOL-program, because there is no way for a proper qualificat
Problem:IPSec configuration for host-host communicationsResolution: Product Name: AppServer Product Version: All Product Component: TIBCO 4.4.3 Platform/OS Version: All Setting up IPSec for host-host communications between Solaris-Solaris and Solaris-Windows XP: IPsec protects IP packets by authenticating the packets, by encrypting the packets, or by doing both. IPsec is performed inside the IP module, below the application layer. Therefore, an Internet application can take advantage of IPsec while not having to configure itself to use IPsec, whereas the use of TLS/SSL or other higher-layer protocols must be incorporated into the design of applications at that level. IPsec uses the following protocols to perform various functions: A. Internet key exchange (IKE and IKEv2) to set up a security association (SA) by handling negotiation of protocols and algorithms and to generate the encryption and authentication keys to be used by IPsec. B. Authentication He
Problem:gatekeeper as root - security issueResolution: Product Name: Visibroker Product Version: VBE 65 Product Component: Gatekeeper Platform/OS Version: UNIX Description: When running the gatekeeper as root, that means the port number is below 1024 on UNIX box then you have root rights. Then, You may see that GET request on gatekeeper can expose the sensitive data where the Gatekeeper is running, which is a security issue. This security issue is not seen when used with VBJ 3.x. Answer/Solution: To fix this security issue please use the property "vbroker.se.exterior.scm.ex-hiop.servlet.orb.GET=false". Basically this property is documented under the gatekeeper properties in gatekeeper guide, but it does not document that this property can be used in such above situations. Old KB# 15197#ApplicationMiddleware#archive
This article explains why an RTS 166 Error occurs when COBOL CALL an ENTRY point that is defined in the main source file. Problem: The main source file pmain.cbl is as follows: PROGRAM-ID. PMAIN. PROCEDURE DIVISION. CALL “sp01”. STOP RUN. ENTRY “sp02”. EXIT PROGRAM. The called source file sp01.cbl is as follows: PROGRAM-ID. SP01. PROCEDURE DIVISION. CALL “sp02”. If the application runs in Intermediate Code, or if the compiler directive RECURSECHECK is used to generate ( -N RECURSECHECK ), the error 166 is displayed. Resolution: In fact , if you want to have a recursive environment , you can down this as follows and compile again: PROGRAM-ID. PMAIN IS RECURSIVE . Or PROGRAM-ID. PMAIN. LOCAL-STORAGE SECTION. PROCEDURE DIVISION. However , be aware of the initial status of all data involved in that case at run time , refer to Pro
This article explains how to place a literal in hexadecimal notation in order for the literal to not be treated as a regular literal. Problem: During compilation, a ‘COBCH1007E Value literal size > data item size, Literal is truncated.’ error occurs. Resolution: In order for the literal value to be treated as a hexadecimal value and not a regular literal, the literal must be placed in hexadecimal notation. To do this, place an ‘h’ or an ‘x’ in front of the literal value. Alternatively, check older copies of the source code to verify that the values are not corrupted or have changed over time. Incident Number: 2427106 Old KB# 14913
This article explains how to include all of the necessary run-time support modules needed to eliminate the load error file outddfh not found. Problem: After a program encounters a Display statement, a ‘load error: file ‘outddfh’ not found’ is received. The ‘outdd’ compiler directive is being used. Resolution: For .gnt or .int files, the compiler directive ‘init utils.lbr’ must be included in the directives file. If not, the trigger program .exe should call ‘utils.lbr’ when it is invoked. ‘Utils.lbr’ contains all of the Micro Focus run-time support modules. Incident Number: 2429172 Old KB# 14912
This article describes how to use floating-point data item as parameters. Problem: I would like to use floating-point data item as a parameter between Micro Focus module and Language C module or Java module. How is this done? Resolution: This is an example : **** Makefile ******* .SUFFIXES: .so .cbl .gnt all : prog.gnt ccomp.so : ccomp.c cob -z -o ccomp.so ccomp.c prog.gnt : prog.cbl prog1.gnt ccomp.so cob -u prog.cbl -U prog1.gnt : prog1.cbl javacalled.class cob -u prog1.cbl -U javacalled.class: javacalled.java javac javacalled.java clean : rm -f ccomp.o ccomp.so javacalled.class prog1.idy prog1.int rm -f prog.gnt prog.idy prog.int prog.o prog1.gnt **** prog.cbl ************ 123456$SET INTLEVEL(4) 01 ZONE1 COMP-1. 01 ZONE2 COMP-2. 01 ZONE1-DISPLAY PIC S9(12)V9(12). 01 ZONE2-DISPLAY PIC S9(12)V9(12). PROCEDURE DIVISION. MOVE -12345.678 T
This article resolves an RTS 173 error that occurs on the application name. Problem: When attempting to animate a 64-bit application from the Net Express command line using the following command mfnetx /debug:progname.exe an RTS error 173 occurs on the application name. Resolution: This is because a new switch “debug64” has been added to the mfnetx command and needs to be used whenever a 64-bit application is to be loaded. Use the following when animating a 64-bit application: mfnetx /debug64:progname.exe Incident Number: 2434379 Old KB# 14914
Problem:When trying to marshall an empty wide string : BAD_PARAM ErrorResolution: Product Name: Visibroker Product Version: VBE 65 Product Component: ORB Platform/OS Version: NA Description: When you run the client, when trying to marshall an empty wide string (not a null string but a one length character string with only 0x00), it may fail with exception: CORBA::BAD_PARAM error. With BES 5.2, it works fine. Answer/Solution: Please issue -Dvbroker.orb.nullstring=true on both the Server and Client side. So CORBA::BAD_PARAM is not thrown. There should not be any impact as long as the client and server tries to transmit a null strings. Please note that if CORBA application do not expect NULL strings then it tries to do some thing erroneous, in which you must add additional checks. Old KB# 15196#ApplicationMiddleware#archive
This article explains that the mfsort command line in Server Express verson 5.0 WrapPack 4 has changed from Server Express version 4.0. Problem: When upgrading from Server Express 4.0 to Server Express 5.0 WrapPack 4 or greater there are modifications in the command line used by mfsort. Specifying the following mfsort command line using Server Express 4.0 is valid, but fails with the error Record size not specified when using Server Express 5.0 WrapPack 4 or greater: mfsort take SAMFLTRD2_test The SAMFLTRD2_TEST file contains: USE SAMFLTRD.STEP0020.SAMU41.KEY GIVE SAMPLTRD.STEM0030.KEY Sort fields (1,12,ch,a) Record f,1600 Resolution: In the following mfsort command line, notice that the record size has been added to the USE statement. The record size not specified is being emitted on the USE, GIVE processing. Micro Focus now requires this to prevent data corruption. Usi
This article explains how to extract error message text from an OLE Exception object. Problem: We need a way to extract text from an OLE Exception object. A Net Express program reads an Excel spreadsheet using OLE. It works great until it encounters an error of some sort. The exception manager is set up to do a call back. The call back works and displays the Excel error message. The question is instead of displaying the error message, how can the error text be moved to a COBOL data item? The following is the callback code which is copied from a Net Express example: callback section. entry "onOleException" using by reference lnkErrorObject by reference lnkErrorNumber by reference lnkErrorText. display "Excel had returned an error..." display "The COBOL exception number was: " lnkErrorNumber invoke lnkErrorObject "display" display "
This article discusses when a run-time error occurs, the need to restart an execution at the point of the main program. Problem: When a run-time error occurs, it is necessary to restart an execution at the point of the main program. For example, if the COBOL applicaton is integrated with TUXEDO, or if the application COBOL is in a Web Service or in an EJB. How is this done? Resolution: The sample attached to this article includes the following files: SERV21.cbl: the main program of the server. It calls SERV31.cbl. It is called with three parameters: INPUT field 9(4) OUTPUT field 9 ( 4 ) = INPUT field 23 ( if error ) = 0 OUTPUT field X(30) = OK or Error SERV31.cbl: called program by SERV21.cbl. SERV41.cbl: called program by SERV31.cbl. &n
This article explains how to use the facilities provided for tracing file operations. Problem: Is it possible to know the sequence of all I-O verbs of all data files? When the application runs first time, we're not having any problem, but the second time, a file-status is displayed. Resolution: The default filename for the File Handler configuration file is extfh.cfg but you can use a different filename by setting the EXTFH environment variable. For example: set EXTFH=/mydir/test.cfg sets the filename to /mydir/test.cfg It is necessary to use the File Handler configuration parameters TRACE, TRACEFILEEXTEND, TRACEFILENAME [XFH-DEFAULT] TRACE=ON TRACEFILENAME=/trace/XHFTRACE.XFH TRACEFILEEXTEND=ON The name of the file must be XHFTRACE.XFH. The Trace Player, cobfhrepro{n} must be used to read the tracing information file. If the application runs in 64 mode the commands are cobfhrepro3 or cobfhrepro364. If the application runs in 32 mode
This article explains how to compile a source file with XML preprocessor, EHTML preprocessor, with copies files. Problem: If we use the XML preprocessor and EHML preprocessor and the first line of the source file is: 123456$set preprocess(htmlpp) stephtml preprocess(prexml) The following error message is displayed: 40 copy "initxml.cpy".* 803-S***************** ( 0)**** Integrated preprocessor message** CP0202 Copybook "initxml.cpy" not found What should we do? Resolution: The solution is to use the CP preprocessor. In this case the syntax of the first line is: 123456$set preprocess(htmlpp) stephtml p(cp) endp preprocess(prexml) Old KB# 14902
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.