Skip Headers
Oracle® Application Server Integration B2B User's Guide
10g Release 2 (10.1.2)

Part Number B19370-03
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Index
Index
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
View PDF

A Troubleshooting and Workarounds

This appendix describes OracleAS Integration B2B issues and workarounds.

This appendix contains the following topics:

A.1 Retrieving the B2B Database Password

Log in to Oracle Internet Directory, where OracleAS Integration B2B accesses the database password. Go to the B2B component and change the password. (Entry Management > cn=OracleContext > Products > IAS > IAS Infrastructure Database > orclReferenceName > orclResourceName=B2B)

A.2 OracleAS Integration B2B Processing Is Very Slow

If OracleAS Integration B2B is very slow after processing a few thousand messages, purge the old run-time data.

A.3 User Interface Pages Time Out Too Fast

If the UI pages time out too fast, do the following:

  1. Go to Oracle_Home\j2ee\OC4J_B2B\applications\b2b\ip\WEB-INF\web.xml.

  2. Modify web.xml to include a <session-config> node under <web-app>, as follows:

    <web-app>
      .....
      <session-config>
          <session-timeout>60</session-timeout>
      </session-config>
      .....
    </web-app>
    
    
  3. Restart OPMN.

A.4 B2B User Login Must Have a Role

Logging in as the b2b user, without first assigning a role to the b2b user, produces a blank page. You must first log in as admin and assign a role to the b2b user. Then the b2b user can log in, with functionality based on the assigned role.

A.5 Run-Time Error When Enqueuing a Message to IP_OUT_ENQUEUE

When you enqueue a message to IP_OUT_ENQUEUE, ensure that MSG_TYPE is set to 1, where 1 indicates a request message. See Table 4-1, "IP_MESSAGE_TYPE Parameters" for more information.

A.6 Checking the IP_IN_QUEUE and IP_OUT_QUEUE Queues

OracleAS Integration B2B provides two queues that enable you to confirm the validity of messages. These queues can be used to integrate with any application that supports advanced queuing (AQ).

A.7 Running Reports

OracleAS Integration B2B provides several report creation wizards that enable you to track the movement of messages and identify errors:

See Chapter 19, "Creating Reports" for instructions on creating reports.

A.8 Checking Log Files

OracleAS Integration B2B creates log files describing all types of occurrences, including startup and shutdown details, errors, warning messages, access details on HTTP requests, and so on. The log file names and formats are determined by the oracle.tip.LogType setting in the Oracle_Home/ip/config/tip.properties file. For example, the run-time log file and design-time log file are named as follows:

If oracle.tip.LogType is Set to... Then the File Name is...
ojdl (default) log.xml (for both files)
text b2b.log

ui.log


You can view the log files in either of two ways:

See "OracleAS Integration B2B Log Files" for instructions on accessing log files through Oracle Enterprise Manager 10g Application Server Control Console.

A.8.1 Setting Log Levels

After installation, the OracleAS Integration B2B logging level is automatically set to ERROR. To create more detailed logging level information, set the level to DEBUG. Perform this task on the Server Properties page of Oracle Enterprise Manager 10g Application Server Control Console. Three server properties can be set:

  • Generic Log Level

  • B2B Server Log Level

  • User Interface Log Level

Generic Log Level provides general B2B server and user interface logging results. This property value is overridden if you set B2B Server Log Level or User Interface Log Level. Both these properties provide more detailed logging results than setting only Generic Log Level.

See "OracleAS Integration B2B Middle-Tier Instance Server Properties" for instructions on setting log levels through Oracle Enterprise Manager 10g Application Server Control Console.

A.9 Correcting Out-of-Memory Errors

If many large messages are enqueued, OracleAS Integration B2B can stop processing with no indication of errors in the OracleAS Integration B2B log files. If this occurs, you can be experiencing an out-of-memory error. Out-of-memory errors that occur in OracleAS Integration B2B are logged in the Oracle Process Manager and Notification Server (OPMN) log files. This type of error can be corrected by increasing the heap size.

  1. Open the Oracle_Home/opmn/log/B2B~B2BServer~instance_name file on your Oracle Application Server middle tier. For example, if your host is named myhostname and your Oracle home is named midtier, the log file is named C:\midtier\opmn\log\B2B~B2BServer~midtier.myhostname.us.oracle.com~1.

  2. Look for any out-of-memory errors:

    java.lang.OutOfMemoryError
    
    

    If you find this type of error, increase the heap size to correct the problem.

  3. Open the Oracle_Home/opmn/conf/opmn.xml file on the same Oracle Application Server middle tier.

  4. Find the process-type section for B2BServer, which looks similar to the following:

    <process-type id="B2BServer" module-id="b2bengine" 
    working-dir="$ORACLE_HOME/ip" status="enabled"> 
    <environment> 
    <variable id="EDIFECS_HOME" value="$ORACLE_HOME/ip/oem/edifecs/EDIFECSXE"/> 
    <variable id="ECRegistryPath"  
    value="$ORACLE_HOME/ip/oem/edifecs/EDIFECSXE/eTools/Validator/Docs/Settings/Pr 
    oduction/registryValid ator.xml"/> 
    <variable id="LD_PRELOAD"  
    value="$ORACLE_HOME/ip/oem/edifecs/EDIFECSXE/eTools/bin/Release/libxenginereso 
    urcelib.so"/> 
    <variable id="LD_LIBRARY_PATH" 
    value="$ORACLE_HOME/ip/oem/edifecs/EDIFECSXE/eTools/bin/Release"  
    append="true"/> 
    <variable id="PATH" 
    value="$ORACLE_HOME/ip/oem/edifecs/EDIFECSXE/eTools/bin/Release" 
    append="true"/> 
    <variable id="CLASSPATH"  
    value="$ORACLE_HOME/ip/oem/edifecs/EDIFECSXE/eTools/java/javalibs/edifecsXData 
    .jar" append="true"/> 
    <variable id="CLASSPATH"  
    value="$ORACLE_HOME/ip/oem/edifecs/EDIFECSXE/eTools/java/javalibs/edifecsXTest 
    .jar" append="true"/> 
    <variable id="CLASSPATH"  
    value="$ORACLE_HOME/ip/oem/edifecs/EDIFECSXE/eTools/java/javalibs/edifecs.jar" 
     append="true"/> 
    <variable id="CLASSPATH" 
    value="$ORACLE_HOME/ip/oem/edifecs/EDIFECSXE/eTools/java/javalibs/log.jar"  
    append="true"/> 
    <variable id="CLASSPATH"  
    value="$ORACLE_HOME/ip/oem/edifecs/EDIFECSXE/eTools/java/javalibs/xalan.jar" 
    append="true"/> 
    <variable id="CLASSPATH" 
    value="$ORACLE_HOME/ip/oem/edifecs/EDIFECSXE/eTools/java/javalibs/js.jar"  
    append="true"/> 
    <variable id="CLASSPATH" 
    value="$ORACLE_HOME/ip/oem/edifecs/EDIFECSXE/eTools/java/javalibs/bsf.jar"  
    append="true"/> 
    <variable id="CLASSPATH"  
    value="$ORACLE_HOME/ip/oem/edifecs/EDIFECSXE/eTools/java/javalibs/xerces.jar" 
    append="true"/> 
    </environment> 
    <module-data> 
    <category id="start-parameters"> 
    <data id="java-parameters" value="-server -Xms8M -Xmx512M"/> 
    </category> 
    </module-data> 
    <start timeout="3600"/> 
    <stop timeout="3600"/> 
    <port id="dms" range="8777"/> 
    @ <process-set id="midtier.iwinrcf19.us.oracle.com" numprocs="1"/> 
    </process-type> 
    
    
  5. Find the java-parameters entry (identified in bold in the preceding text) and change the value of Xmx512M to a more appropriate value.

  6. Save your changes.

  7. Stop and restart the B2B server instance.

See "OracleAS Integration B2B Monitoring and Administration Tasks" for instructions on stopping and starting the B2B server instance.

A.10 Resolving Connection Errors

Table A-1 identifies connection errors you can receive and actions for correcting these errors. These errors can appear when you create reports to monitor the status of your business messages.

Table A-1 Connection Errors and Corrective Actions

Error Action

Blank page in UI

If the database server is busy, the user interface may show a blank page or may take a long time to process an action. Reduce the database server load.

Unable to establish a connection

  1. Connect to the transport servlet at http://hostname:port/b2b/transportServlet.

  2. Ensure that the transport servlet is running.

Unable to contact the RMI server

  1. Ensure that the B2B server instance is running in Oracle Enterprise Manager 10g Application Server Control Console.

  2. Ensure that RMI Port and RMI Instance parameter values match those for the transport servlet. The transport servlet values are defined in the web.xml file. The OracleAS Integration B2B RMI Port and RMI Instance values are defined in the Server Properties page of Oracle Enterprise Manager 10g Application Server Control Console.

Connection error

Connection errors may also occur because the port and IP address of the trading partner is blocked by your firewall. Ensure that the corresponding port and IP address of the trading partner is not blocked by the firewall.


See the following for more information:

A.10.1 Connection Errors While Posting Messages to the Trading Partner URL

If you encounter connection errors while posting messages to the trading partner URL (for HTTPS protocol), open the Oracle Wallet (ewallet.p12) using Oracle Wallet Manager. The default location of the Oracle Wallet is

ORACLE_HOME/Apache/Apache/conf/ssl.wlt/default

Inspect the wallet to ensure that the trading partner certificate was imported into the Oracle Wallet as a trusted certificate. Save the Oracle Wallet and export the entire wallet as wallet.txt in the same directory as ewallet.p12. Verify that the oracle.tip.adapter.b2b.WalletLocation field has a valid URI pointing to wallet.txt. An example of a valid URI is as follows:

file:/private/oracle/Oracle_Home/Apache/Apache/conf/ssl.wlt/default/wallet.txt

A.11 Generic Exchange Protocol Workarounds

This section describes workarounds for using the generic exchange protocol.

A.11.1 Transport Protocol Parameter Settings for the FTP or File Transport Protocol

If you are using a business protocol with a generic exchange, and select the FTP or File transport parameter, you must specify the following values for the transport protocol parameters shown in Table A-2. Otherwise, your business transaction is deleted during transit. You specify these parameters on the Create Trading Partner: Transport page of the Create Trading Partner wizard for both host and remote trading partners.

Table A-2 Transport Protocol Parameters for File or FTP Transport Protocol

Parameter Value

receiver read only

  • True

    Enables files in the inbound directory to be retrieved in the ascending order of their last-modified time.

  • False

    Enables files in the inbound directory, which have been successfully retrieved, to be deleted.

receiver read ordered

  • True

    Files are retrieved in the ascending order of their last-modified time.

  • False

    Files are retrieved in a random fashion.

receiver read ordered timestamp source

  • listtime (recommended)

    For the FTP transport protocol, the FTP command LIST file obtains the last modified time of the file and the size. This command typically returns a text string of the format MMM dd HH:mm or MMM dd yyyy depending on the age of the file. You must specify the type of format you want the FTP server to return.

    For the File transport protocol, the last modified time of the file is retrieved by java.io.File.lastModified().

  • filename

    The timestamp is extracted directly from the file name (for both the FTP and File transport protocols). You must specify the start and end of the substring of the file name, which contains the timestamp to use and the timestamp format.

receiver read ordered timestamp format

Specify one or more timestamp formats for parsing the output of FTP commands or timestamp substrings of filenames. See "Timestamp Formats" for an example of the syntax to specify.


A.11.1.1 Timestamp Formats

You can specify multiple format masks, each enclosed by square brackets.

<format-mask> ::=  <start> "," <end> "," "'" <time-pattern> "'" [ "," <current-year> ] 

<start>  ::= integer 
<end>    ::= integer 

<time-pattern> ::=  <java.text.SimpleDateFormat> | "N" 
<current-year> ::=  "CY" 

TimestampFormats ::=  { "[" <format-mask> "]" }+

Example: Timestamp Formats

[41,53,'MMM dd HH:mm',CY][41,53,'MMM dd  yyyy']

The CY token shown in the preceding text must be added for time patterns where a year is not present. The adapter then internally appends the format yyyy to the user-provided format mask and appends the current year to the actual timestamp string before parsing it.

The <start> and <end> indexes demarcate the timestamp substring of the string, originating either from the FTP LIST command or the actual file name. For a given FTP server (brand/vendor), you may need to manually experiment with the server to determine which format masks to use.

If <time-pattern> is specified as N, the substring is treated as a regular integral number. In terms of time (t), the number (N) is interpreted as follows:

t = "12:00 am, January 1, 1970 UTC" + N milliseconds

If multiple format masks are entered, they are applied in the order in which they appear, until one works.

A.11.2 FTP Server on Windows Operating Systems

If you are using a generic exchange with the FTP transport protocol on Windows operating systems, you must use the Serv-U version 5.2 FTP server and perform the following tasks. Not doing so means that FTP cannot successfully access trading partner endpoints to transfer files. Use of Microsoft FTP servers is not supported.

  1. Download the Serv-U version 5.2 FTP server from:

    http://www.serv-u.com
    
    
  2. Assign admin privileges to the FTP user on the Serv-U FTP server.

  3. Create typical Windows directory paths:

    C:\private\edi_data
    
  4. Ensure that endpoint directories are within the home directory of the FTP user. For example, if the FTP user home directory is C:\private\edi_data, then create a subdirectory for use as the endpoint:

    C:\private\edi_data\Acme
    
    
  5. Create a zero-byte file in the incoming trading partner endpoint directory and a zero-byte file in the outgoing trading partner endpoint directory. For example:

    c:\private\edi_data\Acme\incoming0 (0 bytes) 
    c:\private\edi_data\GlobalChips\outgoing0 (0 bytes)
    

A.11.3 Generic Exchange Protocols and Functional Acknowledgments

If you are using EDI X12 over Generic Exchange or EDI EDIFACT over Generic Exchange with HTTP or HTTPS, do not select Yes in the Functional acknowledgment required? field of the Create Trading Partner: Operational Capability page.

A.11.4 Generic Exchange Protocols and Oracle Application Server Web Cache

If you use the Custom Document over Generic Exchange, EDI X12 over Generic Exchange, or EDI EDIFACT over Generic Exchange business protocol with HTTP or HTTPS as your transport protocol, ensure that Oracle Application Server Web Cache is disabled. Contact Oracle Support Services for instructions.

A.12 Configuration Changes and Redeployment After a Request Is Sent But Before a Response Is Received

If the initiator updates an agreement and redeploys the configuration after a message is sent (for example, a request), then the incoming response is not detected. This is because B2B identifies incoming messages based on the active configuration. The collaboration status "In Progress" is valid only for the previous configuration. On the initiator side (where the configuration was redeployed), the B2B log will show AIP-50904: RefTo message not found.

A.13 Non-English OracleAS Integration B2B Pages in Oracle Enterprise Manager

If you are using OracleAS Integration B2B in a non-English language, note that parts of some OracleAS Integration B2B pages in Oracle Enterprise Manager 10g Application Server Control appear only in English.

A.14 Oracle Application Server Clustering and Integration B2B

OracleAS Integration B2B cannot be installed on a clustered application server middle-tier environment. Also, after you install Oracle Application Server Integration B2B on a middle tier, you cannot add it as a node on a cluster.

A.15 Configuring OracleAS Integration B2B in Enterprise Environments

In a typical Oracle Application Server environment, the Oracle Application Server middle tier with its installations of J2EE and Web Cache and OracleAS Integration B2B communicates with the OracleAS Infrastructure tier and its installation of the OracleAS Metadata Repository.

You can also configure OracleAS Integration B2B to run in enterprise environments. Enterprise environments are slightly different than the typical Oracle Application Server environment in that they include an additional middle tier known as a web tier that is installed and configured outside your corporate network. The web tier includes the J2EE and Web Cache install type. However, there is no installation of OracleAS Integration B2B and no applications are deployed on the web tier. The web tier is used only to exchange HTTP requests (through the Oracle HTTP Server) with the Oracle Application Server middle tier (and its installations of J2EE and Web Cache and OracleAS Integration B2B). The Oracle Application Server middle tier, in turn, communicates with the OracleAS Infrastructure tier and its installation of the OracleAS Metadata Repository.

To use OracleAS Integration B2B in enterprise environments with a web tier, you must perform the following configuration tasks:

On the Oracle Application Server middle tier (with its installations of J2EE and Web Cache and OracleAS Integration B2B):

  1. Go to the ORACLE_HOME/opmn/conf directory.

  2. Use a text editor to open opmn.xml.

  3. Find the entry for OC4J_B2B.

  4. Change the range of AJP Ports from 3301-3400 to 3301-3301.

    This enables OC4J_B2B to run on just one AJP port.

  5. Save your changes.

On the web tier (with its installation of only J2EE and Web Cache):

  1. Go to the ORACLE_HOME/Apache/Apache/conf directory.

  2. Use a text editor to open mod_oc4j.conf.

  3. Add the following entries near the end of the file, but before the </IfModule> line. These entries enable AJP routing to communicate with the configured OC4J_B2B:

    Oc4jMount /b2b ajp13://hostname:ajpport
    Oc4jMount /b2b/* ajp13://hostname:ajpport
    
    

    where:

    • hostname is the name of the host on which the Oracle Application Server middle tier is installed

    • ajpport is the AJP port range that you configured on the Oracle Application Server middle tier

  4. Save your changes.

See Also:

Oracle Application Server Integration B2B Installation Guide for additional instructions on configuring a web tier (and its Oracle HTTP Server) outside your corporate network