Oracle® Application Server Integration B2B User's Guide
10g Release 2 (10.1.2) B19370-03 |
|
Previous |
Next |
This appendix describes OracleAS Integration B2B issues and workarounds.
This appendix contains the following topics:
Configuration Changes and Redeployment After a Request Is Sent But Before a Response Is Received
Non-English OracleAS Integration B2B Pages in Oracle Enterprise Manager
Configuring OracleAS Integration B2B in Enterprise Environments
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)
If OracleAS Integration B2B is very slow after processing a few thousand messages, purge the old run-time data.
If the UI pages time out too fast, do the following:
Go to Oracle_Home
\j2ee\OC4J_B2B\applications\b2b\ip\WEB-INF\web.xml
.
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>
Restart OPMN.
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.
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.
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).
IP_IN_QUEUE
queue
For inbound messages, you can confirm if the message remains in this queue.
IP_OUT_QUEUE
queue
For outbound messages, you can confirm if the message remains in this queue.
OracleAS Integration B2B provides several report creation wizards that enable you to track the movement of messages and identify errors:
Error Status Report
This report identifies errors and all exceptions that occur. This includes enqueue/dequeue errors on a queue, transport errors occurring during wire message communication, plug-ins errors, core errors, XEngine errors (an EDI document processing run-time API), and file handling errors.
This report also enables you to access other report details.
Wire Message Report
This report enables you to check inbound and outbound wire messages to confirm that they are valid and have been received or sent.
Business Message Report
This report identifies the exchange trail of messages between trading partners.
See Chapter 19, "Creating Reports" for instructions on creating reports.
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.propertie
s
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
|
You can view the log files in either of two ways:
Through a command line editor:
Go to the Oracle_Home
/ip/log/b2b
directory.
Open the log.xml
file or b2b.log
file.
Search for:
Error messages (begin with AIP-
)
Exceptions
iAudit report for validation errors in the XEngine (the EDI document processing run-time API)
Go to the Oracle_Home
/ip/log/ui
directory.
Open the log.xml
file or ui.log
file.
Search for design-time issues, such as deployment errors.
Through Oracle Enterprise Manager 10g Application Server Control Console
See "OracleAS Integration B2B Log Files" for instructions on accessing log files through Oracle Enterprise Manager 10g Application Server Control Console.
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.
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.
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
.
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.
Open the Oracle_Home
/opmn/conf/opmn.xml
file on the same Oracle Application Server middle tier.
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>
Find the java-parameters
entry (identified in bold in the preceding text) and change the value of Xmx512M
to a more appropriate value.
Save your changes.
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.
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
See the following for more information:
"OracleAS Integration B2B Monitoring and Administration Tasks" for instructions on monitoring the status of the B2B server
"OracleAS Integration B2B Middle-Tier Instance Server Properties" for instructions on editing RMI Port and RMI Instance parameter values in Oracle Enterprise Manager 10g Application Server Control Console
"Oracle HTTP Server Transport Servlet and OracleAS Integration B2B" for details about the transport servlet and the web.xml
file
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
This section describes workarounds for using the generic exchange protocol.
Transport Protocol Parameter Settings for the FTP or File Transport Protocol
Generic Exchange Protocols and Oracle Application Server Web Cache
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 |
|
receiver read ordered |
|
receiver read ordered timestamp source |
|
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. |
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.
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.
Download the Serv-U version 5.2 FTP server from:
http://www.serv-u.com
Assign admin
privileges to the FTP user on the Serv-U FTP server.
Create typical Windows directory paths:
C:\private\edi_data
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
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)
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.
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.
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.
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.
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.
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):
Go to the ORACLE_HOME
/opmn/conf
directory.
Use a text editor to open opmn.xml
.
Find the entry for OC4J_B2B
.
Change the range of AJP Ports from 3301-3400
to 3301-3301
.
This enables OC4J_B2B to run on just one AJP port.
Save your changes.
On the web tier (with its installation of only J2EE and Web Cache):
Go to the ORACLE_HOME
/Apache/Apache/conf
directory.
Use a text editor to open mod_oc4j.conf
.
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
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 |