If a PowerBuilder component causes EAServer to crash, the pointers provided for crash analysis may be helpful. If EAServer does not crash, insert debug statements into the PowerBuilder component.
Migrating PowerBuilder components When you migrate PowerBuilder components from EAServer 5.x to 6.0, the migration tool does not generate CORBA/Java stubs automatically. If stubs are required, you must generate and compile them manually:F
rom the command line, run:
idl-compiler.bat p_test.idl -f DJC_HOME\genfiles\java\src -java
where DJC_HOME is the EAServer installation directory.
Change to %DJC_HOME%\genfiles\java\src\p_test, and run:
JDK_HOME\bin\javac -d DJC_HOME\genfiles\java\classes -classpath DJC_HOME\lib\eas-servr-14.jar;DJC_HOME\java\classes *.java
where JDK_HOME is the JDK installation directory
Web DataWindow™ stability You may see stability issues or hanging behavior in the Web DataWindow component, in some pre-9 PowerBuilder versions. See white paper #1023707: Web DataWindow Stability Issue for details.
EAServer/PowerBuilder memory tuning See white paper #1027319: EAServer/PowerBuilder Memory Tuning and Troubleshooting.
PBOnFatalError variable The PBOnFatalError system environment variable allows you to specify whether EAServer should continue, restart, or shut down when an internal exception occurs in the PBVM. For more information, see “Unhandled PowerBuilder exceptions”.
PBRollbackOnRTError variable If a runtime exception is raised by a PowerBuilder component running in EAServer, the value of PBRollbackOnRTError determines the outcome of the transaction. If set to true, the transaction is rolled back; if set to false, the transaction is committed. After the transaction is either rolled back or committed, the exception is thrown back to the client.
The default behavior in PowerBuilder 8 prior to Build 10656 and in versions of PowerBuilder 9 prior to build 7151 is to commit the transaction.
Threading models on Sun Solaris Using a many-to-many threading model on Solaris may cause EAServer to hang or crash, if the server is highly stressed. Consider using a one-to-one threading model. See white paper #1026268: EAServer on Solaris - Troubleshooting Tip for Crashes or Hangs.
Performance guidelines If you have trouble running PowerBuilder components under a heavy load, see “PowerBuilder component performance” in Chapter 3, “Component Tuning,” in the EAServer Performance and Tuning Guide.
Code sets Use the following guidelines when deploying PowerBuilder clients or components to EAServer, and when troubleshooting issues related to code sets:
In PowerBuilder clients that use char values greater than 127, specify the code set using the -ORBCodeSet property. The default code set (UTF-8) does not work, because PowerBuilder strings cannot handle 3-byte encodings. To specify the code set, set the Connection object’s Options property; for example, to handle Korean characters in the eucksc code set, use the following syntax, where myConnection represents the Connection object:
myConnection.Options =”ORBCodeSet=’eucksc’”
Specify the component- or server-level default code set.
For PowerBuilder clients and components, verify that the specified code set is compatible with the operating system locale where they are running. That is, a client’s code set must be compatible with the client’s locale, and a component’s code set must be compatible with the component’s locale. The client’s and component’s locales need not be the same.
If you encounter a character-conversion problem, verify that the character is valid in the selected code set, and that it has a well-defined encoding in Unicode; for example, the euro character is not valid in ISO 8859-1.
For more information about working with code sets, see white paper #1028793: Guidelines for Code Set Interoperability with PowerBuilder and EAServer.
Trace flags All EAServer trace flags are described in “EAServer tracing”.
Error handling See “PowerBuilder error handling”.