After upgrade from Gen 8.0 to Gen 8.6 Classic Style Java Proxy receive this error executing the proxy:2019-12-09 16:47:35,082 WARN [######] (main) [####] PStep_Name exception. ......., error: [Function: doPStep_NameOperation]com.ca.gen.jprt.ProxyException: com.ca.gen.jprt.ProxyException: [Function: doPStep_NameOperation]TIRM030E: APPLICATION FAILED - UPDATES HAVE BEEN BACKED OUT
TIRM600E: ERROR TRANSLATING THE COMMON FORMAT BUFFER INTO GURB BUFFER
TIRM046E: *** TRANSACTION PROCESSING TERMINATED
TIRM602E: REMOTE COOPERATIVE PROCESSING WAS ACTIVE
TIRM670E: FROM PROCEDURE STEP
TIRM671E: TO PROCEDURE STEP
Release : 8.6
Gen Run Time, Proxies
Error "TIRM600E: ERROR TRANSLATING THE COMMON FORMAT BUFFER INTO GURB BUFFER" is documented on the Gen 8.6 techdocs page Configuring Runtime IMS and CICS > Establish Client/Server Support in section "Customize Code Page Translation":
===
If TIRCRUNC and TIRCRUNI do not contain the translation table the client and server are using, the transactions fail with TIRM600E: ERROR TRANSLATING THE COMMON FORMAT BUFFER INTO GURB BUFFER. Use MKCRUN JCL to build a version of TIRCRUNx modules that support the required code page combination.
===
With "CMIDEBUG=ON" enabled in the commcfg.properties file the resulting Gen 8.6 trace file showed that outgoing message is sent with code page 1201 while the Gen 8.0 trace file shows that code page 1252 is being used.
The default Gen 8.0 & 8.6 CFBDynamicMessageEncodingExit.java file contains the relevant code to set the client code page (encoding) and, depending on the underlying OS environment, the value 1201 (UTF-8) is being obtained from the hosting JVM:
=== public static String serverEncoding( String tran, String encoding ) {
//if (tran.startsWith("AR")) { /* return transacion specific */
// return "Cp420"; /* encoding. */
if ((encoding != null) && (encoding.length() > 0)) {
return encoding; /* Return Selected Encoding. */
}
return System.getProperty("file.encoding");
//return "UTF-8"; /* Default to Unicode Encoding */
}
===
The translation table for a client code page of 1252 is in the TIRCRUNC translation tables by default, and the Gen 8.0 user exit CFBDynamicMessageEncodingExit.java has been customised to set the client code page to be Cp1252:
=== public static String serverEncoding( String tran, String encoding ) {
return "Cp1252";
}
===
The value "Cp1252" is then mapped to 1252 by the codepage.properties file and is sent to the server in Gen Common Format Buffer (CFB).
So the Gen 8.6 version of CFBDynamicMessageEncodingExit.java needs to be customised in the same way as the Gen 8.0 version.
After compiling the new CFBDynamicMessageEncodingExit.java to CFBDynamicMessageEncodingExit.class the Gen 8.6 runtime jar file used for deployment then needs to be rebuilt with the mkjavart.bat utility.
NOTE:
User exit CFBDynamicMessageEncodingExit is documented in Gen 8.6 techdocs both for the Classic Style Java Proxy and for the standard Java Proxy:
Java Proxy > Preparing for Executing a Java Proxy Application
Java Proxy (Classic Style) Preparing for Execution of Java Proxy (Classic Style) Application