Skip Headers
Oracle® Application Server Integration B2B User's Guide
10g Release 2 (10.1.2)
Part No. B13849-01
  Go To Documentation Library
Home
Go To Product List
Solution Area
Go To Table Of Contents
Contents
Go To Index
Index

Previous
Previous
Next
Next
 

A Troubleshooting and Workarounds

This appendix describes Oracle Application Server Integration B2B troubleshooting methods.

This appendix contains these topics:

A.1 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.2 Running Reports

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


See Also:

Chapter 14, "Creating Reports" for instructions on creating reports

A.3 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 runtime 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:

A.3.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 tool 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 Also:

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

A.4 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 Also:

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

A.5 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
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.



See Also:


A.6 Generic Exchange Protocol Workarounds

This section describes workarounds for using the generic exchange protocol.

A.6.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.6.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 A-1 provides an example:

Example A-1 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.6.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.6.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.6.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.