Skip to main content
Question

Error ORA-19702 / SQLCODE -19702 when opening cursor in 32-bit Enterprise Server 11.0 (Oracle 19c XA)

  • June 11, 2026
  • 7 replies
  • 31 views

sergi.yague
Forum|alt.badge.img+1

Hi Community,

I am seeking assistance regarding a persistent ORA-19702 error ("device parameter exceeds maximum length of string") occurring in an Enterprise Server 11.0 environment on Windows.

Environment Summary:

  • Product: Rocket Enterprise Developer / Enterprise Server 11.0.
  • Architecture: 32-bit region (Working Mode 32).
  • Database: Oracle 19c via XA interface.
  • Switch Module: Custom-built dynamic module (ESORAXA_D.dll) compiled using the 32-bit Oracle precompiler (procob) and Microsoft Manifest Tool (mt.exe).

Context and Troubleshooting History: We have already overcome several initial configuration hurdles:

  1. Current Status: The Resource Manager now initializes successfully during region startup, as confirmed by the console log: CASXO0015I DBP XA interface initialized successfully.

The Current Problem: The issue arises during runtime. When a COBOL program executed via JCL attempts to open a cursor (SQL DECLARE/OPEN), the system returns: SQLCODE=-0000019702 (ORA-19702: device parameter exceeds maximum length of string)

Open String Configuration: I have tested multiple variations in ESCWA, currently using: LogDir=C:\Oracle\XALogs+DbgFl=0+Oracle_XA+SesTm=100+SqlNet=DBD_LINUX+Acc=P/user/password+BATCHONLY=T.

Tests Performed to resolve ORA-19702:

  • Path Shortening: We reduced the LogDir path to the absolute minimum (e.g., C:\, C:\L, and even omitting it), but the "device parameter" error persists.
  • Batch Isolation: We are using BATCHONLY=T to ensure the resource is only managed by JES Batch SEPs and avoid CICS recovery conflicts.
  • Environment Cleanup: The PATH and LIB variables in the [ES-Environment] section have been cleaned to include only essential Oracle and Rocket directories.

Questions for the Forum:

  1. Is there a specific internal buffer limit in the Enterprise Server 11.0 OCI wrapper for the LogDir parameter when running in 32-bit mode?
  2. Could the inclusion of the Rocket-specific parameter BATCHONLY=T be causing Oracle to miscalculate the total length of the native OCI open string?
  3. Are there any known issues with Oracle 19c Instant Client (32-bit) handling XA trace parameters when invoked from a Service Execution Process (SEP)?

Any insights or recommended CTF trace levels to further diagnose this would be greatly appreciated.

Best regards,

7 replies

sergi.yague
Forum|alt.badge.img+1
  • Author
  • Participating Frequently
  • June 11, 2026

Just in case it's of any use, I wanted to mention that I was surprised when I saw the SYSOUT of the JCL step with strange characters:
CEE3608I The following messages pertain to the invocation command run-time options.
CEE3611I The run-time option &PARMS was an invalid run-time option.
SQL Error PROGRAM: âÉÃÓðððÃ
SQLCODE: -19702 : Ö••…Ƒ£‰–•@•�”…@•–£@†–¤•„K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ ***END OF FILE***


Kim Hoskin
Forum|alt.badge.img+2
  • Moderator
  • June 11, 2026

Hi Sergi,

As a test, if you remove the LogDir parameter completely, does the SQLCODE=-0000019702 still show? This can be a way to confirm this is the parameter that is causing the issue or not.

Regards,
Kim


Hi Sergi,

SQLCODE=-19702 is not the same as ORA-19702.
What is the error message in SQLERRMC?
I suspect the error was caused by connection was not established.
You will need to make sure the environment in the ES has everything set up for connecting the client to the Server (e.g. TNS_ADMIN, PATH, etc...)

 


sergi.yague
Forum|alt.badge.img+1
  • Author
  • Participating Frequently
  • June 11, 2026

Hi Kim. I've shortened the LogDir path in the 'Open String' field of the XA resource settings down to C: and this hasn't solved the problem. I've also tried a 6-digit folder under the C root and that didn't work either. Thanks.


sergi.yague
Forum|alt.badge.img+1
  • Author
  • Participating Frequently
  • June 11, 2026

Hi Laurence Jao.
I don't think it's a connection problem, because when I disconnect from the VPN the following error occurs:
ORACLE XA: Version 19.0.0.0.0. RM name = 'Oracle_XA'. 

173229.28388:22612.1: ORA-12545: Connect failed because target host or object does not exist 

173229.28388:22612.1: xaolgn_help: XAER_RMERR; OCIServerAttach failed. ORA-12545.

I have also triggered this other error:
ORACLE XA: Version 19.0.0.0.0. RM name = 'Oracle_XA'.
102509.2188:17172.1: ORA-01017: invalid username/password; logon denied 102509.2188:17172.1: xaolgn: XAER_INVAL; logon denied.

In fact, the startup log emits the following message: DBP XA interface initialized successfully Although maybe the enterprise developer could be lying. Regarding SQLERRMC, I don't know what I need to check or where to get the information from. Finally, I should mention that I have been trying to configure the ctf.cfg file to see the traces but I can't manage to generate the output file with the traces: 

I have these environment variables:
MFTRACE_CONFIG=C:Oraclectf.cfg
MFTRACE_LOGS=C:OracleXALogsTrazasCTF

And this is the content of the ctf.cfg file:

mftrace.application               = *

mftrace.dest                      = textfile

mftrace.emitter.textfile#Format   = $(TIME) $(THREAD) $(COMPONENT) $(EVENT) $(LEVEL) :$(DATA)

mftrace.level.mf.esxa             = debug

## Enable all tracing

mftrace.comp.mf.esxa#all          = true

 

################################################

# CASSPOOL Tracing

################################################

mftrace.level.mf.mvs.casspool           = debug

mftrace.comp.mf.mvs.casspool#restart    = true

 

################################################

# MVSRGDG Tracing

################################################

mftrace.level.mf.mvs.mvsrgdg            = debug

mftrace.comp.mf.mvs.mvsrgdg#entry      = true

mftrace.comp.mf.mvs.mvsrgdg#restart    = true

 

################################################

# JCL Tracing

################################################

mftrace.level.mf.mvs.mfjcl              = debug

mftrace.comp.mf.mvs.mfjcl#msgs          = true

mftrace.comp.mf.mvs.mfjcl#pgm           = true

 

################################################

# MJRM Tracing

################################################

mftrace.level.mf.mvs.mjrm               = debug

mftrace.comp.mf.mvs.mjrm#entry          = true

mftrace.comp.mf.mvs.mjrm#enq            = true

 

################################################

# MVSCATIO Tracing

################################################

mftrace.level.mf.mvs.mvscatio           = debug

mftrace.comp.mf.mvs.mvscatio#entry      = true

 

################################################

# RTS Tracing

################################################

mftrace.level.mf.rts                    = debug

mftrace.comp.mf.rts#pgmsearch           = true

mftrace.comp.mf.rts#pgmload             = true

 

################################################

# Filehandler Tracing

################################################

mftrace.level.mf.mffh.xfh               = debug

mftrace.comp.mf.mffh.xfh#all            = true


 


sergi.yague
Forum|alt.badge.img+1
  • Author
  • Participating Frequently
  • June 12, 2026

Hi. I've changed the project's properties character set from EBCDIC to ASCII and now the error message appears: 
SQL Error PROGRAM: SICL000C
SQLCODE: -19702 : Connection name not found.
Even so, I have checked the connection string in the tnsnames.ora file and don't see anything wrong, and now I'm trying to change the line ending from CRLF to LF and vice versa to see if that could be it, and checking the environment variable with which the enterprise server should be able to resolve the location of the tnsnames.ora file.


  • Rocketeer
  • June 12, 2026

Hi Sergi,

The XA logs you pasted are irrelevant in this case as you are not using 2pc XA.

Within the Region of the ES Admin page,  after the region is started, you should be able to verify the Environment Variables set for the region under the Monitor tab.  Make sure the Oracle env settings are correct.  If everything looks ok but the Batch job still fails to connect, then as Kim has previously suggested in the other thread, it’s best to raise a Support incident so that our customer care team can spend more time to investigate what happened in your ES environment.

At the end of day, 1pc connection in Batch job is just a simple Pro*COBOL application (the XA switch module itself) executing an EXEC SQL CONNECT statement.  As long as the Oracle environment is properly set up and picked up by the ES region, it should just connect without problem.

 

Regards,
Laurence