D Troubleshooting

This appendix describes solutions to common problems that you might encounter when installing Oracle SOA Suite. It contains the following sections:

D.1 General Troubleshooting Tips

If you encounter an error during installation:

D.2 Installation and Configuration Log Files

This section contains information about the log files that are created when running the Oracle SOA Suite installer and the Oracle Fusion Middleware Configuration Wizard. Log files contain information that can help you troubleshoot problems with your installation or configuration.

D.2.1 Installation Log Files

The installer writes logs files to the Oracle_Inventory_Location/log (on UNIX operating systems) or Oracle_Inventory_Location\logs (on Windows operating systems) directory. On UNIX systems, if you do not know the location of your Oracle Inventory directory, you can find it in the SOA_ORACLE_HOME/oraInst.loc file. On Windows systems, the default location for the inventory directory is C:\Program Files\Oracle\Inventory\logs.

The following install log files are written to the log directory:

  • installdate-time-stamp.log

    This is the main log file.

  • installdate-time-stamp.out

    This log file contains the output and error streams during the installation.

  • installActionsdate-time-stamp.log

    This file is used by the installer GUI to keep track of internal information.

  • installProfiledate-time-stamp.log

    This log file contains the overall statistics like time taken to complete the installation, as well as configuration, memory and CPU details.

  • oraInstalldate-time-stamp.log

    This log file contains the output stream of the copy session.

If you start the installer with the -printtime parameter, the timeTakendate-time-stamp.log and timedate-time-stamp.log files are created in the same directory:

  • timeTakendate-time-stamp.log

    This file contains information for the amount of time taken to move between screens (applicable for GUI installations only).

  • timedate-time-stamp.log

    This file contains time information for the copy session.

If you start the installer with the -printmemory parameter, the memorydate-time-stamp.log file is created. This file contains memory usage information for the copy session.

D.2.2 Configuration Log Files

To create a log file of your configuration session, start the Configuration Wizard with the -log option, as shown below:

On UNIX operating systems:

./config.sh -log=log_filename

On Windows operating systems:

config.cmd -log=log_filename

If you specify an absolute path with your log_filename then your log file will be created there. If you only specify a file name with no path, then the log files are created in the MW_HOME/bin (on UNIX operating systems) or MW_HOME\bin (on Windows operating systems) directory.

D.3 Keeping Track of Your JRE Location

The JRE location used by the installer is stored in the SOA_ORACLE_HOME/oui/oraparam.ini (on UNIX operating systems) or SOA_ORACLE_HOME\oui\oraparam.ini (on Windows operating systems) file. This file is used by OPatch and Oracle Universal Installer (OUI) to determine the location of your preferred JRE.

It is possible to change the location of your JRE (for example, the JRE directory is moved out of the Middleware Home). If this happens, you will get an error message when trying to run OPatch or OUI since the JRE location can no longer be found. If this happens, you can do one of the following:

  • Edit the SOA_ORACLE_HOME/oui/oraparam.ini (on UNIX operating systems) or SOA_ORACLE_HOME\oui\oraparam.ini (on Windows operating systems) file to point to the new JRE location.

  • Use the -jreLoc command line option to point to the new JRE location. See Section 2.2.2, "Starting the Installer" for more information.

D.4 Invoking SOA Composites Over SSL

If Oracle WebLogic Server is configured to use custom trust key store, you must manually revise the setDomainEnv.cmd (on Windows operating systems) or setDomainEnv.sh (on UNIX operating systems) file so that the Djavax.net.ssl.trustStore parameter points to the custom trust keystore file. For example:

Djavax.net.ssl.trustStore=/myfolder/mystore/mytrustkeystore.jks

D.5 Using Data Sources with an SSL-Enabled Database

If you are using an SSL-enabled database, follow the instructions below so that your data sources will work with SSL connections:

  1. Create a truststore and add the ./root/b64certificate.txt as a trusted certificate to the truststore using a keytool:

    keytool -importcert -trustcacerts -alias dbroot -keystore ./truststore -storepass welcome1 -file ./b64certificate.txt
    
  2. In the WebLogic Server console, navigate to the "Connection Pool" tab of the data source you are using. Modify the following properties accordingly:

    1. Requires Authentication:

      javax.net.ssl.keyStore=keystore_password
      javax.net.ssl.keyStoreType=JKS
      javax.net.ssl.keyStorePassword=keystore_password
      javax.net.ssl.trustStore=truststore_location
      javax.net.ssl.trustStoreType=JKS
      javax.net.ssl.trustStorePassword=truststore_password
      
    2. Does Not Require Authentication:

      javax.net.ssl.trustStore=truststore_location
      javax.net.ssl.trustStoreType=JKS
      javax.net.ssl.trustStorePassword=truststore_password
      
  3. In the URL field, enter the following:

    jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCPS)(HOST=database_host)(PORT=database_port)))(CONNECT_DATA=(SERVICE_NAME=service_name))(SECURITY=(SSL_SERVER_CERT_DN="distinguished_name"
    )))
    
  4. In the JDBC data source files, modify the <property> parameter as shown below:

    <property>
    @ <name>javax.net.ssl.trustStorePassword</name>
     <value>truststore_password</value>
    </property>
    

D.6 Extending an Identity Management Domain with a SOA Installation

If you create a domain by installing Oracle Identity Management, then extend it by installing Oracle SOA Suite, the Oracle SOA installer changes the ORACLE_HOME environment variable. This breaks the Oracle Identity Federation (OIF) WebLogic Scripting Tool (WLST) environment, which relies on the value of ORACLE_HOME as set by the Identity Management installation.

To work around this issue, do the following:

  1. Follow the instructions in "Setting up the WLST Environment" in Oracle Fusion Middleware Administrator's Guide for Oracle Identity Federation.

  2. Copy all of the .py files in the OIF_ORACLE_HOME/fed/script (on UNIX operating systems) or OIF_ORACLE_HOME\fed\script (on Windows operating systems) directory to the WebLogic_Home/common/wlst (on UNIX operating systems) or WebLogic_Home\common\wlst (on Windows operating systems) directory.

  3. Append the OIF_ORACLE_HOME/fed/script (on UNIX operating systems) or OIF_ORACLE_HOME\fed\script (on Windows operating systems) directory to the CLASSPATH environment variable.

D.7 XA Configuration Required to Start the SOA Infrastructure on Microsoft SQL Server

You must configure XA support in both the Microsoft SQL Server database and Microsoft operating system to test the SOA Infrastructure connection during domain creation and to successfully start the SOA Infrastructure.

  1. Install Oracle WebLogic Server.

  2. Install Microsoft SQL Server JDBC XA procedures. These procedures enable you to use JDBC distributed transactions through JTA. This procedure must be repeated for each MS SQL Server installation to include in a distributed transaction.

    1. Copy the .dll file appropriate for your platform and the instjdbc.sql file from the WebLogic_Home\server\bin directory to the directory appropriate to your version of SQL Server:

      Note:

      If you have an environment where you have previously configured XA support and have applied the latest Oracle SOA Suite patch set, you must perform this step using the sqljdbc.dll and instjdbc.sql files from the most recent WebLogic Server home directory.
      Database Copy This File... To This Directory...
      SQL Server 2005 From the WebLogic_Home\server\bin directory, copy one of the following .dll files (find the one for your platform) along with the instjdbc.sql file:
      • sqljdbc.dll (for x32 platforms)

      • x64sqljdbc.dll (for x64 platforms)

      • 64sqljdbc.dll (for IA64 platforms)

      C:\Program Files\Microsoft SQL
      Server\MSSQL.1\MSSQL\Binn
      
      SQL Server 2008 From the WebLogic_Home\server\bin directory, copy one of the following .dll files (find the one for your platform) along with the instjdbc.sql file:
      • sqljdbc.dll (for x32 platforms)

      • x64sqljdbc.dll (for x64 platforms)

      • 64sqljdbc.dll (for IA64 platforms)

      C:\Program Files\Microsoft SQL
      Server\MSSQL10.INSTANCE_NAME\MSSQL\Binn
      

      Notes:

      • If you are installing stored procedures on a database server with multiple Microsoft SQL Server instances, then each running SQL Server instance must be able to locate the appropriate .dll file. Therefore, the .dll file must be anywhere on the global PATH or on the application-specific PATH. For the application-specific PATH, place the .dll file into the drive:\Program Files\Microsoft SQL Server\MSSQL$Instance_1_Name\Binn directory for each instance.

      • If your Oracle WebLogic Server and Oracle SOA Suite installations are on a Linux host, the .dll file does not appear under the WebLogic_Home/server/lib directory. In these cases, you must copy this file from a host on which .dll file is installed.

    2. From the database server, use the ISQL utility to run the instjdbc.sql script for your version of SQL Server. As a precaution, back up the master database before running instjdbc.sql.

      For Microsoft SQL Server 2005, run:

      C:\Program Files\Microsoft SQL Server\90\Tools\Binn\SQLCMD.EXE -S
      "DB_HOST\INSTANCE_NAME" -U SA -P SA_PASSWORD -i instjdbc.sql -o
      LOG_FILE
      

      For Microsoft SQL Server 2008, run:

      C:\program files\Microsoft SQL Server\100\Tools\Binn\SQLCMD.EXE -S
      "DB_HOST\INSTANCE_NAME" -U SA -P SA_PASSWORD -i instjdbc.sql -o
      LOG_FILE
      

      For both commands, DB_HOST is the name of the host on which SQL Server is installed, INSTANCE_NAME is the name of the SQL Server instance, and SA_PASSWORD is the password of the system administrator.

      The instjdbc.sql script generates many messages, including the following which can be safely ignored:

      Msg 156, Level 15, State 1, Server STANA17-1\SQLSERVER123, Line 1
      Incorrect syntax near the keyword 'tran'.
      Msg 319, Level 15, State 1, Server STANA17-1\SQLSERVER123, Line 1
      Incorrect syntax near the keyword 'with'. If this statement is a common table
      expression, an xmlnamespaces clause or a change tracking context clause, the
      previous statement must be terminated with a semicolon. 
      

      You should scan the entire output for any messages that may indicate an execution error. The last message should indicate that instjdbc.sql ran successfully. The script fails when there is insufficient space available in the master database to store the JDBC XA procedures or to log changes to existing procedures.

  3. Configure the Microsoft Distributed Transaction Coordinator (DTC) for the Microsoft operating system.

    1. From the Start menu, select Control Panel > Administrative Tools > Component Services icon > Component Services (in the navigator under Console Root) > Computers > My Computer.

    2. Right-click My Computer and select Properties > MSDTC > Security Configuration.

      The Security Configuration dialog appears.

    3. In the Security Settings section, select the Network DTC Access checkbox.

    4. In the Client and Administration section, select the Allow Remote Clients checkbox.

    5. In the Transaction Manager Communication section, select the Allow Inbound, Allow Outbound, No Authentication Required, and Enable Transaction Internet Protocol (TIP) Transactions checkboxes.

    6. In the Security Settings section, select the Enable XA Transactions checkbox.

    7. Click OK in the Security Configuration dialog.

    8. Click OK in the My Computer Properties dialog.

  4. Reboot Microsoft SQL Server.

    The XA driver will not successfully connect during domain configuration if your Microsoft SQL Server database is not rebooted.

D.8 Need More Help?

If this appendix does not solve the problem you encountered, try these other sources:

If you do not find a solution for your problem, open a service request.