In general, Object Request Brokers (ORBs) write important failures to the ULOG file. When using the CORBA C++ ORB, you can also enable ORB internal tracing which may provide information in addition to the information that appears in the ULOG file.When looking at the ULOG file, note that remote ORB processes by default do not write data to the ULOG file in APPDIR.
• On UNIX, the remote ORB writes information to a ULOG file in the current directory.
• You can set the ULOGPFX environment variable to control the location of the ULOG file for remote ORBs (for example, you can set the location of the ULOG file to APPDIR so that all information is put in the same ULOG file). Set the ULOGPFX environment variable as follows:
1.
2. Use the following command to set the OBB_TRACE_INPUT environment variable to point to the trace.dat file before running the application:The ORB_init routine does not perform internal ORB tracing so you will not see any trace output for invalid argument processing. Therefore, you need to double check the arguments that were passed to the ORB_init routine.If a CORBA::BAD_PARAM exception occurs when executing the ORB_init routine, verify that all required arguments have values. Also, check that arguments which expect a value from a specific set of valid values have the correct value. Note that values for the arguments of the ORB_init routine are case sensitive.If a CORBA::NO_PERMISSION exception occurs and an SSL argument was specified to the ORB_init routine, make sure the security license is enabled. Also, verify that the specified level of encryption does not exceed the encryption level supported by the security license.If a CORBA::IMP_LIMIT exception occurs when executing the ORB_init routine, verify that the ORBport and ORBSecurePort system properties have the same value.If a CORBA::Initialize exception occurs when executing the ORB_init routine, verify that the values for OrbId or configset are valid.If Secure Sockets Layer (SSL) arguments are passed to the ORB_init routine, the ORB attempts to load and initialize the SSL protocol. If no SSL arguments are passed, the ORB does not attempt to initialize the SSL protocol.The ORB is not aware of the new URL address formats for the Bootstrap object so if you specify a corbaloc or corbalocs URL address format, the ORB does not try to load the SSL protocol during the ORB_init routine.If SSL arguments were specified to the ORB_init routine, check the following:
•
• That the value specified for the maxCrypto system property is less than the value specified for the minCrypto system property. The values for the properties must be within the range appropriate for the license.
• Application-controlled SSL configuration parameters that are not correct. The ORB_init routine does not perform digital certificate lookups check so look for missing or corrupted files that would case the dynamic libraries not to be loaded. Also, verify the dynamic libraries are loaded. The ORB trace function will provide information about whether or not the dynamic libraries are loaded.If the problem persists, turn on ORB tracing. ORB tracing will log SSL failures that occur when the liborbssl dynamic library is loaded and initialized.If the client application fails when using the corbalocs URL address format with password authentication, check the following:
• The proper configuration steps were performed. See “Configuring the SSL Protocol”and “Configuring Authentication” for the list of the required configuration steps.
• An initialization error occurred. Specify a valid SSL system property to the ORB_init routine, an error occurs if:
•
• The IIOP Listener/Handler is available but it does not support the SSL protocol. The ULOG file will show that a non-GIOP message was received.The ULOG file will indicate that a non-GIOP message was received if the IIOP Listener/Handler was configured for the SSL protocol but the CORBA client application used a TOBJADDR object without the corbalocs prefix to indicate a secure connection.If the client application fails when using the corbalocs URL address format with certificate authentication, check the following:
• The proper configuration steps were performed. See “Configuring the SSL Protocol” on page 6‑1 and “Configuring Authentication” on page 7‑1 for the list of the required configuration steps.
• Specify a valid SSL system property to the ORB_init routine, an error occurs if:
•
• The IIOP Listener/Handler is available but it does not support the SSL protocol. The ULOG file will show that a non-GIOP message was received.If an error does not occur, the problem is in the authentication process and the ULOG file will contain one of the following error statements indicating the problem:Additional certificate problems can also occur. See “Tobj::Bootstrap:: resolve_initial_references Problems” on page 11‑5 for more information about the types of certificate errors that can occur.If a failure occurs when performing a Tobj::Bootstrap::resolve_initial_references with the corbaloc or corbalocs URL address format, a CORBA::InvalidDomain exception is raised. This exception may mask CORBA::NO_PERMISSION or CORBA::COMM_FAILURE exceptions that are raised internally. Look at the ULOG file and turn on ORB tracing to get more details on the error. The following errors may occur:
• If the IIOP Listener/Handler is available but it does not support the SSL protocol, the ULOG file will show that a non-GIOP message was received.
• The IIOP Listener/Handler could not map a certificate to a username/password combination. Verify that the security level for the CORBA application is set to USER_AUTH and that the specified username matches the principal name passed into the authenticate call. Also, check that the username does not exceed the 30 character limit.Additional certificate problems can occur. See “Troubleshooting Tips for Digital Certificates” on page 11‑8 for more information about the types of certificate errors that can occur.If a failure occurs when starting the IIOP Listener/Handler, check the ULOG file for a description of the error. The IIOP Listener/Hander verifies that the values for the SSL arguments specified in the CLOPT parameters are valid. If any of the values are invalid, the appropriate error is recorded in the ULOG file. This check is similar to the argument checking done by the ORB.The IIOP Listener/Handler will not start its processes unless the -m option is specified. The ISH is the process that actually loads and initializes the SSL libraries. If there is a problem loading and initializing the SSL libraries in the ISH process, the error will not be recorded in the ULOG file until the ISH process starts to handle incoming requests from client application.If you suspect a problem with the startup of the IIOP Listener/Handler processes, check the ULOG file.
• The ORB -ORBpeerValidate command-line option and the -v option of the ISL command do not control the peer validation rules checking. This system property and option only control the checking of the host name specified in the peer certificate against the host name of the machine to which the principal was connected.
• The only way to disable the peer validation rules on an installed kit is to create an empty file for %TUXDIR%\udataobj\security\certs\peer_val.rul. If you are writing a script that builds your CORBA application, you cannot register the peer_val.rul file in the script.
• When enabling renegotiation intervals in the IIOP Listener/Handler, check that the option on the ISL command is -R not -r. If you use an -r, the IIOP Listener/Handler will use the SSL protocol but the renegotiation interval will not be used. In addition, the ULOG file will note that an unknown option was specified on the IIOP Listener/Handler.
• If you have defined the SECURITY parameter in the CORBA application’s UBBCONFIG file to be APP_PW or greater and you have configured the IIOP Listener/Handler to use the SSL protocol but not mutual authentication, you must use password authentication with the corbalocs URL address format to communicate with the IIOP Listener/Handler. If you try to use certificate authentication, the IIOP Listener/Handler will not ask the principal for a certificate when establishing an SSL connection and the IIOP Listener/Handler is not able to map the identity of the principal to an Oracle Tuxedo identity.If you have a joint client/server application and the client portion of the joint client/server application specifies security requirements using either the corbalocs URL address format or by requiring credentials, you must use the -ORBsecurePort system property with the ORB_init routine to specify that a secure port be used.If you do not specify the -ORBsecurePort system property, the server registration will fail with a CORBA::NO_PERMISSION exception. To verify this is the problem, enable ORB tracing and look for the following trace output:TCPTransport::Listen: FAILURE: Attempt to listen on clear port while Credentials require SSL be usedIf you want to use the SSL protocol with callback objects, the joint client/server application must use the SecurityLevel2::PrincipalAuthenticator::authenticate() method with certificate authentication. Otherwise, the joint client/server application does not have a certificate with which to identify itself to the IIOP Listener/Handler which in this case is the initiator of the SSL connection.
• One of the digital certificates in the certificate chain of the IIOP Listener/Handler is not from a certificate authority defined in the trust_ca.cer file. A problem can occur if any certificate authority in the trust_ca.cer file is invalid.
• The name the IIOP Listener/Handler connected to the client application does not match the host name specified in digital certificates of the IIOP Listener/Handler when a host match is performed. The name of the IIOP Listener/Handler is specified in the CommonName attribute of the distinguish name of the IIOP Listener/Handler. The host name and the CommonName attribute must match exactly.You can verify this error by setting the -ORBpeerValidate system property to none and executing the ORB_init routine again.
2. Look at the KeyUsage and BasicConstraints properties of the digital certificate. A small yellow triangle with an exclamation mark indicates the property is critical. Any digital certificate with a property marked critical is rejected by the Oracle Tuxedo software.