Print Page

Wednesday, March 4, 2009

JMS Delivery Channel Setup Guide & FAQ

Please follow this link for JMS Delivery Channel Setup guide.

FAQ

1. Where do i place my JMS providers binaries (jar files, example, weblogic.jar) in B2B so that it can connect to target JMS system?

opmn.xml, refer the guide for more details and sample configuration.

2. Getting classloading and/or version mismatch major/minor exception when connecting to other JMS providers?

B2B runs on top of JDK1.4, if your third party JMS binaries are compiled against higher versions of JDK you may have this error. Please have the binaries in classpath those are compatible with JDK1.4.

3. Why principals and credentials are always sent by B2B even if it is not configured in Delivery Channel Setup?
Just rename or remove the jndi.properties file under $ORACLE_HOME/ip/config and restart B2B, you should be good to go.

Please post your comments and/or other challenges in configuring JMS. We will add pointers in this post to address those challenges.

Tuesday, March 3, 2009

MLR8 - Post install

Users interested on FTP/File/SFTP please continue reading, others may opt to skip this. Heard from users that even after successful installation of MLR8, few transport specific features do not appear to be enabled in UI. If you encounter similar problem, please follow the below to resolve the same.

How to verify the new features of MLR8?

This patch would create transport parameters like "is VAN Mailbox" and "Clear Command Channel" etc., for FTP protocol. After successful installation of patch, if you are going to use any of MLR8 features and/or transport specific features of recent MLRs, please verify your FTP protocol by creating a FTP delivery channel. You should see the aforementioned parameters as part of "transport parameter" configuration.

If those are available, then you can configure B2B for FTP (CCC) and other FTP features of MLR8.

Resolution

If those parameter are not available, you could create the same by yourself by following the steps below.

1. Run setenv.bat/setenv.sh under $ORACLE_HOME/ip/install
2. Shutdown B2B midtier - "opmnctl shutdown"
3. Go to patch exploded directory, "cd /files/ip/config/"
4. run the command to create the transport seed parameter - "java oracle.tip.adapter.b2b.data.B2BTransportParamSeed tpp.properties"

You are good to go now, #4, would see that the transport features of patch "MLR8 and earlier" also get seeded so that you could consume those.

Monday, March 2, 2009

VAN FTP

Introduction

Value added network is typically a paid service to exchange the data between Trading partner. Traditionally most of the VAN cases are for transmitting EDI document, however it can also be used for exchanging XML or any proprietary document.

VAN gives additional functionalities such as

1. Leased dedicated network to exchange data in a secure way.
2. Translation,Validation, transformation and lookup.
3. Auditing capability.
4. Data synchronization service.
5. Variety of Transport offering.
6. Advanced notification and Web Interface.
7. It may also have few industry standard service like FTP, FTPS, SFTP (SSH FTP), HTTP and HTTPS etc for message exchange.

B2B Configuration

B2B can be configured to exchange files to VAN (Value added Network) FTP interface. The configuration is as same as simple FTP delivery channel configuration.

If the VAN provider exposes FTP interface as a mailbox, meaning, the path to transfer file may not be in-line with regular FTP.

For example, a regular FTP, may have path lik "/tmp/outbound/" and "/tmp/inbound/". Some, VAN providers FTP interface, may have path like "inbound/" and "outbound/" and there cannot be a directory under a directory. This is referred as a mailbox as opposed to folder or directory in FTP.

To cater for the later case mentioned above, you may have to enable "is VAN Mailbox" transport parameter in FTP delivery channel by providing "true".

Other configuration remain same for any FTP endpoint.

contributors of this post: Ramesh and Sinkar

MLR8 - Oracle B2B 10.1.2.3 transport features

  • VAN mailbox support
  • FTP "CCC" command support
VAN Mailbox Support

Supported Proctols: FTP

  1. The support has been provided in B2B for wide range of VAN implementation that includes FTP based mailbox implementation in addition to regular FTP interface on VAN.
Clear Command Channel ("CCC") Support

Supported Proctols: FTP

  1. The "CCC" support enables B2B to authenticate the channel over SSL on FTP and exchange other commands on plain socket for control communication.
  2. This can be enabled at the delivery channel level.
The SSL based communications are relatively slower than the data transmission on plain channel. This feature helps customers to increase the performance of B2B FTP interface without compromising on the security part. Enabling, this feature makes B2B to exchange "password" over secured channel and rest of the ftp commands on plain channel (socket) on the same connection. Technically, B2B swaps the underlying connection to secure and non-secure and vice-versa as needed.

Transport Features - MLR7 - Oracle B2B 10.1.2.3

  • File/FTP/SFTP - Archive feature
  • File/FTP/SFTP - Marker Support
  • File/FTP/SFTP - File name preserve
  • FTP - Binary transfer type
  • SFTP Delivery Channel Configuration - Masked pass phrase
  • FTP - List and process in the same session
  • SFTP HA Mode - Closes in-active instance connections
  • Custom Exception Queue
Archive Feature

Supported Protocols: File, FTP and SFTP

  1. Enables the users to archive the files that are being processed by Oracle AS B2B
  2. Configurable feature in UI as part of Delivery channel configuration with absolute path of the directory where to archive the files.
Marker Support

Supported Protocols: File, FTP and SFTP

  1. This feature indicates successful processing of a particular message
  2. Once a message is processed, "0" byte file with same name gets created in the same folder
  3. Configurable feature in UI as part of Delivery channel configuration with the value of true/false
File name preserve

Supported Protocols: File, FTP and SFTP

  1. Incase of inbound, the incoming filename will be retained in B2B and handed over to backend application .
  2. Incase of outbound, the filename provided by backend application is retained while message processing and sent across to the trading partner.
  3. To enable this feature, please set the property "oracle.tip.adapter.b2b.FilenamePreserve=true" in tip.properties. The default value is false .

Binary Transfer

Supported Protocols: FTP

  1. There are two modes for file transfer, "ascii" and "binary"
  2. Selectively use the transfer modes for different delivery channel
  3. The Default transfer type is ascii

PassPhrase Mask - Private Key

Supported Protocols: SFTP

  1. Private key passphrase is masked in B2B delivery channel configuration
List and process in the same session

Supported Protocols: File, FTP and SFTP

  1. Some of the FTP servers (like ConnectEnterprise) have the mechanism of changing the alias name on a regular basis for the same file, so the file becomes non-existant for reading if the read and processing is in different session.
  2. Connect and read the files in a single connection, thereby reading all the files in a single session.
  3. When the cache connection is set to false, the B2B will connect and, read using different FTP Connections
SFTP HA Mode

Supported Protocols: SFTP

  1. While in High Available environment, it is important to close the connections on the inactive instances.
  2. B2B Engine closes the inactive instances to SFTP server appropriately .
Custom Exception Queue

Oracle B2B enque the exception messages to IP_IN_QUEUE with user as B2BERRORUSER and is always fixed. This feature allows the users to configure a custom queue to receive the Exception messages.

For e.g: if the communication mechanism with backend application is JMS, using the default IP_IN_QUEUE, with B2BERRORUSER might not be a feasible option.

Configuring the following tip.property can enable this feature

oracle.tip.adapter.b2b.CustomExceptionChannel=[internal delivery channel]

Tuesday, February 10, 2009

Insight into HL7 Acknowledgement and Generic Acknowledgement

Acknowledgement in HL7 with out Trigger Event and How to enable it.

Every message has a message type and a Trigger event. Message type defines the purpose of the message and the Trigger event results in creation of one or more messages.

e.g

When the patient is admitted to hospital sending a HL7 Admit Patient message (HL7 ADT:A01)
When the patient is transferred from one ward to another sending a HL7 Transfer message (HL7 ADT:A02)

ADT message is used to transmit the Patient Administration information from hospital to pharmacy. Typically this information is broadcasted from hospital to pharmacy, lab, admin section.

A01 - Admit patient only.
A02 - Transfer patient


Combination of message type and Trigger event refers to a specific message type is sent for a specific activity. A message type may be associated with more than one event.

HL7 Acknowledgement -

Recipient sent the below acknowledgement code depending on the outcome of processing business message

AA Application Accept
AE Application Error
AR Application Reject

Recipient check the message type(msh.9), version ID (msh.12) and processing ID(msh.11), if any of these are not acceptable it should send a acknowledgement message with msa.1 having value AR. For improper message format, missing required filed, it sends the value AE. For all other error recipient sends AR.

ADT Message

MSH|^~\&|ACME APP|ACME FAC|GC APP|GC FAC|20050804162010||ADT^A01|13463136|P|2.3.1|||AL|AL|US|ASCII|ENG
EVN|A01|199901061000|199901101400|01||199901061000
PID|1||191919^MCM~371-66-9256|253763|MASSIE^JAMES^A||19560129|M|||171 ZOBERLEIN^^ISHPEMINGMI^49849^""^||(900)485-5344|(900)485-5344||S|CHR|10199925^^^GENHOS^AN|371-66-9256||
NK1|1|ACK^ELLEN|SPO|171 ZOBERLEIN^^ISHPEMING^MI^ABW^""^|(900)485-5344|(900)545-1234~(900)545-1200|EC^EMERGENCY CONTACT
NK1|2|MASSIE^MARYLOU|MTH|300 ZOBERLEIN^^ISHPEMING^MI^ABW^""^|(900)485-5344|(900)545-1234~(900)545-1200|EC^EMERGENCY CONTACT
NK1|3
NK1|4|||123 INDUSTRY WAY^^ISHPEMING^MI^49849^""^||(900)545-1200|EM^EMPLOYER|19940605||PROGRAMMER|||ACME SOFTWARE COMPANY
PV1||O|||||0148^ADDISONJAMES|0148^ADDISON,JAMES|0148^ADDISON,JAMES|CAR|||||||0148^ADDISON,JAMES|S|1400|A|||||||||||||||||||GN||||||
PV2||||||||199901101400|||||||||||||||||||||||||199901101400
OBX||ST|1010.1^BODY WEIGHT||62|kg|||||F
DG1|1|19||BIOPSY||A
GT1|1||MASSIE^JAMES^""^""^""^""^||171 ZOBERLEIN^^ISHPEMINGMI^49849^""^|(900)485-5344|(900)485-5344||||SEL^SELF|371-66-925||||a|171 ZOBERLEIN^^ISHPEMING^MI^49849^""|(900)485-5344|||||||||||||||||||||||||||||||||MOOSES AUTO CLINIC
IN1|1|0|BC1|BLUE CROSS|171 ZOBERLEIN^^ISHPEMING^M1^49849^^||(900)485-5344|90||||||VXX
IN1|2|""|""

Acknowledgement
MSH|^~\&|GC APP|GC FAC|ACME APP|ACME FAC|20071016055244||ACK^A01|20071016055244131|P|2.3.1|
MSA|AA|13463136|MSG Received Successfully|


Typically Acknowledgement carries the message type and Trigger event of the original message in MSH.9.

Some of the HL7 System has a Generic Acknowledgement implementation for all trigger types i.e which does not expect only message type in msh.9 and not any trigger type.

To enable this set the following tip.properties.

oracle.tip.adapter.b2b.hl7.genericAck=true

How to configure Oracle B2B for sending and Receiving GenericAck

1. Edit the Acknowledgement ecs file in spec builder.
2. Go to MSH 9, select Event type under Trigger event and delete the same.
3. Save the ecs file and export xsd.
4. Use the above ecs while modelling the flow of Acknowledgment.

Sunday, February 8, 2009

Document vs Exchange level Acknowledgement

Acknowledgment are of two types,

1. Document Acknowledgment - Acknowledgment which is sent/consumed by the document layer and it caters more for sending validation, translation status, it can also be considered as Application acknowledgement.

e.g Functional Acknowledgment(997)/Control in EDI/HL7 protocol.

Typically Functional acknowledgment are send/received by B2B, however there is always a fallback option to send FA by the back end application only for a use case which cant be handled by B2B.

e.g To send some of the specific segment in the inbound business message as part of the outbound control/FA, for which there is no mapping in B2B Functional Acknowledgment. Back end Application need to generate the Functional acknowledgment using the internal property of the inbound business message.

How to enable Document level Acknowledgment

The flag isFunctionalAck required controls whether an FA is needed are not. Make sure to define a Document Type with the name and revision of 997/4010(any) or control/D3 with an attached Business action in the agreement.

2. Exchange Acknowledgment/MDN/Ack

Exchange level acknowledgment are called MDN in AS2 and Acknowledgment in RNIF and eBMS case. Exchange level acknowledgment signifies the status of validity of Exchange message, verify,decrypt functionality and sends a negative
acknowledgment to the initiator of the business message for any issues.

How to enable Exchange level Acknowledgment

The flag IsAcknowledgement handled by B2B enables B2B to generate and consume Exchange level Acknowledgment. However it is possible to delegate this functionality to back end application by setting this flag to OFF.

Monday, January 26, 2009

Interesting Post in HL7Gurus

Please follow new and interesting post in HL7Gurus What is HL7

Wednesday, January 21, 2009

Thursday, January 15, 2009

Verification & Vaildation of messages for ebMS in Oracle B2B

When a signed message comes into Oracle B2B using ebMS protocol, the following steps occur:

STEP 1: Verification:

The ebMS protocol itself does the verification by extracting the certificate from the message and uses this certificate to verify the signed message.


STEP 2: Validation

An additional feature of Oracle B2B is to perform another step after STEP1 for validation. Here, the public key in the repository is compared with that of the message. The public in the repository is uploaded while configuring the trading partner.

This feature can be turned off by adding the following property in the tip.properties:

*oracle.tip.adapter.b2b.tpa.verifyCertificate=false*

Further, it is strongly recommended that this additonal feature be turned off (by adding the above property) while working with high performance environments.

Exception handling in Rosettanet

While processing an inbound RosettaNet message, there are chances of the message being erronous due to vaious reasons.

The likely cause could be in
1.Rosettanet Exchange specific values mismatch in either service header or delivery header
2.Error Document validation

In this case, B2B will send an exception message back to the trading partner. This is an automatic process of creating the exception message and sending back to trading partner and this does not need any additional configuration.

It is different from PIP 0A1 processing. In the case of PIP 0A1, an Exception message is trigger by B2B Engine for any error/exception, where as NOF has to be sent by the Back end application.

Friday, January 9, 2009

Security Configuration in Oracle AS Integration B2B

Practice Lesson
Security Configuration in Oracle AS Integration B2B


Security Configuration In Integration B2B


Introduction:

There are three ways of providing security in Oracle AS Integration B2B.
      1. Encryption
      2. Digital Signature (Sign).
      3. SSL



Security Setup:

Step1 : Create a self signed certificate for the host using the Oracle Certificate Authority, the tutorial for the same is as below.
http://www.oracle.com/technology/products/oid/oidhtml/sec_idm_training/html_masters/devapp06.htm

Alternatively it is possible to obtain a certificate from the CA(certificate Authority like Verisign or Thwarte) . Certificate extension should not matter, as long as you use x.509 compliant certificate.

Step2: Import the host certificate into the Oracle Wallet along with the Root certificate.

Step 3: Make sure you have specify the wallet location properly (folder name) in the file /ip/configuration/tip.properties.

E.g. oracle.tip.adapter.b2b.WalletLocation = c:/tmp/soa/b2b

Step 4: Using Oracle Integration B2b, The following are the steps to configure for secured way of transferring messages between trading partners.

      -> Select Partners
            -> Select Trading Partner
                  ->Select Acme
                        -> Click on “Update”


Enter the following information

General Page: Enter the wallet Password information
New Wallet Password
Confirm New Password

->Click Apply

step 5: Setting up the Host Delivery Channel:

For providing the Security Information for Host Trading Partner (Acme)
Create Communication Capability
      -> Select Trading Partners
            -> Select Acme
                  -> Select Capabilities
                        -> Select
                              -> Select Create Communication Capability

Delivery Channel Page

Prompts to define the following delivery channel details for the secure exchange of messages between trading partners:
     · Delivery channel name
     · Acknowledgment mode
     · Global usage code
     · If nonrepudiation of receipt and nonrepudiation of origin are Required
     · If encryption, transport security, and compression are enabled
     · Time to acknowledgment value
     · Retry count value

Note: The selections you make on this page for nonrepudiation of receipt, nonrepudiation of origin, encryption, and transport security determine the fields that display and the transport protocols that are selectable on subsequent pages of this wizard.

Document Exchange Page

Prompts to define the following document exchange characteristics for exchanging messages between trading partners

     · Document exchange name
     · Exchange protocol revision and parameter values.
     · Document exchange protocol parameters
     · Digital signature, signing credential, and certificate file if you Selected        “Yes” for nonrepudiation of receipt and nonrepudiation of origin on the        Delivery Channel page.
     · Digital envelope, encryption credential, and certificate file if you selected        “Yes” to enable encryption on the Delivery Channel
       page.


In the Document Exchange window, enter the following information,


Encryption:
There is a need to select Digital Envelope algorithm depending on whether encryption is enabled.

New encryption credential can be created using create new or use the existing Encryption credentials. For new credentials use Browse button to locate Host certificate as it is used to decrypt the message. Make sure this certificate should be available in the e-wallet.

Non-Repudiation: If Non-Repudiation is enabled then select the Digital Signature and Signing credentials. Use Browse button to locate Host certificate for Digitally Signing the outbound Message. Make sure this certificate should be available in the e-wallet.

B2B engine uses the certificate from the repository for both signing and encryption and also a lookup to the wallet for Private key, hence there is a need to import the host certificate into the wallet as well.

Note: There is another way to specify the Certificates,

     -> Select Partners
          -> Select Trading Partner
               -> Select Acme
                    -> Click on “Create” under Certificate


Enter the following information
     Name: <Any valid Name>
     Certificate File: <Using browse to locate the certificate >
          ->Click Apply

Use this certificate while creating the Delivery Channel by selecting “Use Existing”.

Step 6: Setting up the Trading Partner Delivery Channel:

Providing the Security Information for Remote Trading Partner (GlobalChips)
Create Communication Capabilities
     ->Select Trading Partners
          ->Select GlobalChips
               ->Select Capabilities
                    ->Select <Business protocol>
                         ->Select Create Communication Capability

Delivery Channel Page

Prompts to define the following delivery channel details for the secure exchange of messages between trading partners:

     · Delivery channel name
     · Acknowledgment mode
     · Global usage code
     · If nonrepudiation of receipt and nonrepudiation of origin are Required
     · If encryption, transport security, and compression are enabled
     · Time to acknowledgment value
     · Retry count value

Note: The selections you make on this page for nonrepudiation of receipt, nonrepudiation of origin, encryption, and transport security determine the fields that display and the transport protocols that are selectable on subsequent pages of this wizard.

Document Exchange Page

Prompts to define the following document exchange characteristics for exchanging messages between trading partners

     · Document exchange name
     · Exchange protocol revision and parameter values
     · Document exchange protocol parameters
     · Digital signature, signing credential, and certificate file if you Selected        “Yes” for nonrepudiation of receipt and nonrepudiation of origin on the        Delivery Channel page
     · Digital envelope, encryption credential, and certificate file if You selected        “Yes” to enable encryption on the Delivery Channel
       Page

In the Document Exchange window, enter the following information,



Encryption:
There is a need to select Digital Envelope algorithm depending on whether encryption is enabled.

New encryption credential can be created using create new or use the existing Encryption credentials. For new credentials use Browse button to locate Trading Partner certificate as it is used to encrypt the outbound message.

Non-Repudiation: If Non-Repudiation is enabled then select the Digital Signature and Signing credentials. Use Browse button to locate Trading Partner certificate for Digital signature verification for the inbound message.


SSL - Security

Configure SSL:

1. Edit Oracle_Home\opmn\conf\opmn.xml. Search for ssl-disabled and change it to ssl-enabled.
2. Startup Oracle Wallet Manager. Open the default wallet* in Oracle_Home\Apache\Apache\conf\ssl.wlt\default. Password is welcome.
3. Right click on “Trusted Certificates” Node and import the Remote Trading Partners Certificate.
4. Save the wallet in location Oracle_Home\ip as b2bwallet.txt
5. Edit Oracle_Home\ip\config\tip.properties
6. Search for wallet location and change it to Oracle_Home\\ip\\b2bwallet.txt.
7. Stop and start opmn – opmnctl stopall / opmnctl startall

* Note: Usage of default wallet is recommended only for Test. Request for a Server Certificate from a CA for actual usage.

Test SSL Configuration:

1. Access Oracle Enterprise Manager.
2. Find the SSL port
3. Access the B2B Transport Servlet through the following the URL: https://hostname:sslport/b2b/transportServlet

Configure SSL for Trading Partners.
1. Log into the B2B UI Tool.
2. Click on Partners>>Trading Partners>>Select the Trading Partner>>Capabilities>>Select the Business Protocol>>Communication Capabilities>>Select Delivery Channel
3. Update Delivery Channel to enable Transport Security.
4. Update Transports details to select HTTPS 1.1 secure as the Transport Protocol.
5. Update Transport Server details to include the SSL port.

Repeat the same for all remaining Trading Partners.
Create a Configuration and Deploy.

Thursday, January 8, 2009

monitoring and cleaning internal queue

Sometime it is required to remove persistence data within B2B. This script will be very useful for cleaning any event stuck in internal B2B queues.

1) this script to find count of messages in queue.

SELECT a.queue_table, a.name, b.waiting, b.ready, b.expired FROM
dba_queues a, v$aq b WHERE a.qid = b.qid AND owner = 'B2B';

2)cleaning messages from specific queue table. in case, you are using inbound AQ, queue table is 'IP_QTAB'.

declare po dbms_aqadm.aq$_purge_options_t;
begin
po.block := FALSE;
dbms_aqadm.purge_queue_table(
queue_table => 'EVENT_QTAB',
purge_condition => NULL,
purge_options => po);
end;

Thursday, January 1, 2009

Monitoring All the AQ in B2B

In order to monitor all the AQ (Advanced Queues) related to B2B the following query can be used.

SELECT a.queue_table, a.name, b.waiting, b.ready, b.expired FROM dba_queues a, v$aq b WHERE a.qid = b.qid AND owner = 'B2B';

Tuesday, December 30, 2008

Wish you happy new year 2009

Wishing a great new year for you and your family. Have A Great Year 2009 Ahead!

Team B2BGurus

Friday, December 19, 2008

Agreement Identification in ebMS

TPA Identification details

Following are the various mechanisms with which the agreement would be identified using ebMS protocol.

Outbound scenario:

1) From, To, Document Type and Document Revision: In Oracle AS B2B, it is possible to identify the agreement using these attributes.

2) Service based Identification
If document Type and Document Revision is not present and if the ebMS service is available, which is enqueued using the ACTION attribute, then the ebMS service attribute is used to identify the Document Type and Document Revision and identify the agreement based on step 1.

3) Action based Identification
If document Type and Document Revision is not present and if the ebMS Action is available, which is enqueued using the ACTION attribute, then the ebMS action attribute is used to identify the Document Type and Document Revision and identify the agreement based on step 1.


Inbound Scenario

1) From, To, Document Type and Document Revision: In Oracle AS B2B, it is possible to identify the agreement using these attributes. Since Oracle AS B2B supports custom over ebMS Business protocol, the custom Document Type and Document Revision can be retrieved by applying the Xpath expression on the payload.

2) Action based Identification
If the Business Action matches with the ebMS header Action of the incoming message, then the respective Document Type and Document Revision will be used to identify the agreement based on step 1.

3) CPAId based Identification
The following property in tip.properties, “oracle.tip.adapter.b2b.ebms.IdentifyAgreement.cpaId=true” indicates then the incoming document’s agreement Identification will be based on ebMS header CPAId with the Agreement ID. If this value is set true, then this overrides all the above mechanisms for inbound agreement identification, as this is a global setting.

Wednesday, December 17, 2008

Monday, December 15, 2008

10.1.2.3.0 Patch Install

Every time there is a new release we often come across may patches.
10.1.2.3.0 is also a one such patch for 10.1.2.0.2 oracle AS server. 10.1.2.3.0 has 2 options, which need to be selected during installation. Below are the steps to install 10.1.2.3.0 and the option we need to select to make 10.1.2.3.0 successful installation.

NOTE:
Pre-requisite
1. 101202 infra, Midtire and b2b should be installed
2. Please make sure that Midtire is shutdown before starting Patch installation


How to install 10.1.2.3.0 Patch

1. Download 10.1.2.3.0 Patch from metalink
2. Click on "Next" button welcome screen
3. Select "Midtire home” in “specify location” screen and click Next button
4. Select the 1st radio button, which is "Oracle Application Server and Developer Suite 10g Rel2 Software update 10.1.2.3.0" and proceed to next screen(refer screen shot below)


5. Specify IAS_ADMIN password and proceed to next screen

6. Review summary page and Click on the "Install" button
7. This will complete 10.1.2.3.0 patch installation




What happens if we choose second option i.e "Oracle Application Server 10g Metadata Repository Update 10.1.2.3.0" ?

If we choose "Oracle Application Server 10g Metadata Repository Update 10.1.2.3.0" we cannot complete the installation we will hit this issues "Metadata Repository update cannot be run from the selected OH. the update must be run from either an identity management with metadata repository installation or a portal and wireless middle tire or a business intelligence and forms middle tier. Running this update on either an oracleAS middle tire or identity management with metadata repository installation allows updating of any of the metadata repositories registered with your Internet directory”

Monday, December 1, 2008

Customizing Control Version in EDIFACT

By default oracle B2B generates the CONTROL message using D3 version. If there is a requirement to customize the version of CONTROL message use the following tip.properties.

oracle.tip.adapter.b2b.edi.FAMessageVersionNumber
oracle.tip.adapter.b2b.edi.FAMessageReleaseNumber
oracle.tip.adapter.b2b.edi.FAAssocAssignedCode

If FAMessageVersionNumber, FAMessageReleaseNumber, FAAssocAssignedCode is specified in tip.properties, we replace those values in generated CONTROL message.

Overdue Acknowledgements - Identify and Take action

How to Handle Overdue Acknowledgments?

Oracle AS B2B provides a feature to configure a timeout value with in which the Functional Acknowledgment has to be received for Outbound business messages.

After successful transmission of EDI Message, B2B must wait for Functional Acknowledgment for configured time. If FA is not received, B2B will enqueue an Error message to B2B Inbound Queue.

set oracle.tip.adapter.b2b.FAWaitTimeOut= time

where time is in minutes.

With FAwaitTimeOut configuration, B2B inserts a Timeout event. If FA is not received with in the time out period, B2B will enqueue an error message.

It is possible to develop a BPEL process to listen on to B2B Inbound queues with B2BERRORUSER and send further notification in the form of fax/phone/SMS etc.

Tuesday, November 25, 2008

Multiple Private Keys in Oracle B2B

Stay tuned..

Monday, November 24, 2008

Is batching a Mandatory for Grouping the Transaction set

Even though EDI Batching is the preferred way of grouping the transaction set, it is also possible to handle it by sending multiple transaction set as edifecs XML. B2B accept the multiple transaction set, translate it into EDI document by adding the envelope details to it.

If you find any limitations in this approach , please shoot a mail to ramesh.anantharamaiah@oracle.com

Tuesday, November 11, 2008

New Blogs for - EDI and HL7 Users

EDIGurus.com and HL7gurus.org

Stay tuned to get more. This is a place to ask anything and everything on EDI and HL7.

Thursday, November 6, 2008

CPP/CPA feature in ebMS

Introduction

Oracle B2B is a critical component of Oracle Fusion middleware which supports various Standard based B2B protocol for Trading Partner Integration. Standards supported by B2B protocols spreads across several Business verticals and involve various Document, Exchange standard (Exchange standard incorporates both Transport, packaging and security protocols).

To support multiple protocols Oracle B2B has a notion of canonical meta data model to accommodate the meta data of various protocols. CPA Import process maps the incoming CPA Specific metadata to Oracle B2B canonical model and the CPA Export process do the reverse of mapping from canonical model to CPA model.


This document talks about the import /export aspect of EBXML metadata, which is captured as Collaboration Protocol Profile CPP and Collaboration protocol Agreement CPA and is widely used in EBXML community.

In ebXML, a Collaboration Protocol Profile (CPP) will describe message exchange capabilities of a party. A Collaboration Protocol Agreement (CPA) will describe the agreement between two parties


The CPP and CPA contains details of transport, messaging, security constrains, and bindings to a Business Process Specification (BPSS) document that contains the definition of the interactions between the two Parties while engaging in a message exchange.

This document explains CPP/CPA features, steps to configure using Oracle AS B2B and the runtime behavior of CPP/CPA.


Salient features:

1. CPA import with selective BPSS specification: This utility provides the option to the user to selectively add the BPSS specification while importing the CPA. One or more BPSS documents can also be imported. This is done by adding all the BPSS documents separated by “;”.

2. Auto Creation of Business Action: This feature automatically creates all the BPSS specification business actions to Oracle AS B2B business actions. This will facilitate the user to create Business Action in bulk.


3. Grouping of Business action into an agreement based on endpoint
This feature combines all the business action pertaining to an endpoint under one agreement.


4. Selective usage of Common Business Actions. This feature helps the user to selectively add the common business actions while importing, depending on the business requirement

We are referring ReceiptAcknowledgement, AcceptanceAcknowledg-ement as Common business action i.e one which can be used in multiple services.
One time definition of Common Business Actions: All the common business actions that are using common schema can be defined only once and gets used/referred to all the other BPSS’s while importing, thereby simplifies the CPP/CPA import.

The definition used for the common business actions like ReceiptAcknowledgement, AcceptanceAcknowledgement will have the common schemas.

6. Auto Import/Export of security details: The required security credentials will be taken from CPP/CPA document to Oracle AS B2B as part of CPA import process, also the security details gets exported from Oracle AS B2B to CPP/CPA,

7. CPA Export of Multiple BPSS files from Oracle AS B2B: This feature exports the Oracle AS B2B specific metadata to CPP/CPA specific metadata .For every Business Action, it creates a corresponding BPSS during export.


8. CPA Export of Multiple CPA files from Oracle AS B2B: This feature allows the multiple CPA export. Typically it creates a different agreement for every CPA based on the Trading partner.

9. Log Level can be configured as Debug or Info or Error.
10. Log files can be of type text or xml.




Pre-requisites:

1 Business knowledge of Custom over ebMS Exchange

2 Knowledge of ebXML 2.0

3 As part of Pre-CPA import steps, it is required to create the Internal Delivery Channels in Oracle B2B, and the same has to be referred in the cppcpa.properties. This gets used in CPA Import steps


User Experience

IMPORTANT: Please take backup of your existing B2B configurations.

Steps to run CPP/CPA Import:

1) Set the environment for Oracle AS B2B by executing the setenv script available at $ORACLE_HOME/ip/install
2) Configure all the necessary import values in the cppcpa.properties located in $ORACLE_HOME/ip/tutorial/.
3) From $ORACLE_HOME/ip/tutorial run the below command
java oracle.tip.adapter.b2b.utility.EBMSUtility <location of cppcpa.properties>

Steps to run CPP/CPA Export:

1) Set the environment for Oracle AS B2B by executing the setenv script available at $ORACLE_HOME/ip/install
2) Configure all the necessary export values in the cppcpa.properties located in $ORACLE_HOME/ip/tutorial/.
3) Make sure the property “oracle.tip.adapter.b2b.ebms.CPADocument” is commented. – This property is used while importing the CPP/CPA to Oracle AS B2B
4) Provide the Host Party Name in “oracle.tip.adapter.b2b.ebms.Host” property.
5) Provide the Host Endpoint URL in “oracle.tip.adapter.b2b.ebms.HostEndPoint” property.
6) From $ORACLE_HOME/ip/tutorial run the below command
java oracle.tip.adapter.b2b.utility.EBMSUtility <location of cppcpa.properties>

Configuration Details:

CPA Import Properties:

1 oracle.tip.adapter.b2b.ebms.BPSSDocument
This property holds the absolute path for BPSS Document. It is an optional property, which will be used to get the BPSS document details to be import into Oracle B2B repository. If the property does not exist then the values will be imported from CPA. Multiple BPSS documents are separated by “;”

2 oracle.tip.adapter.b2b.ebms.CPADocument
This mandatory property will be used to get the absolute path of the CPA document to be import into Oracle B2B repository.

3 oracle.tip.adapter.b2b.ebms.xsdLocation
This optional property will be used to specify the absolute path of the schema file location. This schema file will be used for document validation.

When BPSS document is not specified then it will use for the common definition for all Business Actions.

4 oracle.tip.adapter.b2b.ebms.CertificateDirectory
This is a mandatory property in case of secured message transfer. This directory will be used to store the certificates specified in the CPP/CPA document, which will be used in ebXML secured message transfer.

5 oracle.tip.adapter.b2b.ebms.internalDeliveryChannel.InBound
This mandatory property will be used in Oracle B2B Configuration. Specify the already created inbound internal delivery channel or specify the default inbound internal delivery channels like B2B Inbound or XML Gateway Inbound. The specified channel name MUST be present in Oracle AS B2B before importing the CPP/CPA

6 oracle.tip.adapter.b2b.ebms.internalDeliveryChannel.OutBound
This mandatory property will be used in Oracle B2B Configuration. Specify the already created outbound internal delivery channel or specify the default outbound internal delivery channels like B2B Inbound or XML Gateway Inbound. . The specified channel name MUST be present in Oracle AS B2B before importing the CPP/CPA.

7 oracle.tip.adapter.b2b.ebms.CommonBusinessAction
Add the common business actions separated comma. These are the business actions that are used multiple times in CPA.

E.g.: ReceiptAcknowledgementException, ReceiptAcknowledgement, AcceptanceAcknowledgementException, AcceptanceAcknowledgement. It is an optional property.

In case of CPA import along with BPSS document common business action schema can be defined like below,

#oracle.tip.adapter.b2b.ebms.<Business Action Name>.Definition = <location of xsd>
# e.g. oracle.tip.adapter.b2b.ebms.ReceiptAcknowledgementException.Definition = <location of xsd>

8 Oracle.tip.adapter.b2b.ebms.GroupAgreement
This optional Boolean property will be used to group the business action in an agreement.


CPA Export Properties:

9 oracle.tip.adapter.b2b.ebms.OutputFolder
This mandatory property will be used to place the generated CPP/CPA files in the specified location.

10 oracle.tip.adapter.b2b.ebms.Host
This mandatory property will be used to set the Host Trading Partner.

11 oracle.tip.adapter.b2b.ebms.HostEndPoint
This mandatory property will be used to set the host endpoint while generating the CPP/CPA export.

12 oracle.tip.adapter.b2b.ebms.HostCertificateAlias
In case of secure message transfer, this property will be used to get the host certificate details to the CPP/CPA export.

13 oracle.tip.adapter.b2b.ebms.TPCertificateAlias
In case of secure message transfer, this property will be used to get the trading partner certificate details to the CPP/CPA export.

14 oracle.tip.adapter.b2b.ebms.BPSSExport
This optional Boolean property will be used to generate the BPSS document.

Common Properties:
15 oracle.tip.adapter.b2b.ebms.LogDirectory
This mandatory property will be used to store the log files.

16 oracle.tip.adapter.b2b.ebms.LogLevel
This mandatory property will be used to specify the mode of logs like DEBUG|INFO|ERROR.

17 oracle.tip.adapter.b2b.ebms.LogType
This mandatory property will be used to specify the log file will be stored as text/xml.

Note : More details including configuration settings would be available soon, stay tuned.

Attachment feature in ebMS using Oracle AS B2B 10g

These steps help in sending attachments in ebMS.

1. Create an xml in UNIX FILE FORMAT. Here is the sample xml file,

<?xml version="1.0" encoding="UTF-8"?>
<Attachments xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="AttachmentsDescriptor.xsd" version="1.0" boundary="boundary---">
<AttachmentPart>
<Location>file:///scratch/nansrini/test.pdf</Location>
<Content-Type>
<Top-Level-Type>application</Top-Level-Type>
<Sub-Type>pdf</Sub-Type>
</Content-Type>
</AttachmentPart>
</Attachments>


2. Edit the enq.properties to provide the file name for the "attachment" attribute as the above file(sample xml).

3. Provide directory name in tip.properties for the key "oracle.tip.adapter.b2b.attachments.dir" where the file will be stored in the inbound scenario.
4. Restart the server and enqueue the Message.
5. By Default oracle.tip.adapter.b2b.MimeType accepts only below types,

@ application/xml
@ application/octet-stream
@ application/EDIFACT
@ application/EDI-X12
@ application/jpg
@ image/jpeg
@ application/gzip
@ application/x-gzip
@ application/pkcs7-signature

If you want more options, Then you must modify tip.properties in
$ORACLE_HOME/ip/config directory to include your MimeTypes also, For example,
You want to include pdf attachments, Then your tip.properties would look like,

oracle.tip.adapter.b2b.MimeType=application/xml : application/octet-stream : application/EDIFACT : application/EDI-X12 : application/jpg : image/jpeg :
application/gzip : application/x-gzip : application/pkcs7-signature :
application/pdf

Ensure the above property in single line.

Add a new content type such as application/pdf restart opmn and re-try testcase.

Friday, October 31, 2008

PGP Encrypted File Transfer

This feature enables transferring of the externally PGP encrypted message. This can be done by setting below tip.properties. The default value is false.

oracle.tip.adapter.b2b.BinaryTransfer=true

High Availability with SFTP (SSH FTP) adapter

B2B SFTP adapter can also operate on HA topology like File and FTP adapters. Enabling SFTP adapter on HA environment is fairly simple and the process is as same as in File/FTP HA deployment.

Please refer the HA configuration guidelines for non-transactional transports here, http://www.b2bgurus.com/2008/02/high-availability-with-fileftp-adapter.html

Monday, October 27, 2008

B2B Installation fundamentals

Installation of B2B on Windows machine

Download B2B: Get this from oracle metalink

Step1: Install Oracle Infrastructure

1. Go to Shiphome location and click on setup.exe
2. Provide necessary oracle home for this Infrastructure installation
3. Complete the installation.

Step 2: j2ee/midtire/OC4J installation

1. Go to Shiphome location and click on setup.exe
2. Provide a separate middleware home. This is different from step1
3. Complete the installation.

Step 3: post installation activity

1. Open a cmd prompt and set the oracle home, An example is shown below
C:\101202\infra_0306> set path=C:\101201\infra_0306\bin;%path%
C:\101202\infra_0306> set ORACLE_HOME= C:\101201\infra_0306
C:\101202\infra_0306> set path=%ORACLE_HOME/bin;%path%
C:\101202\infra_0306> set ORACLE_SID=orcl0306

2. Unlock the b2b user if Meta Data repository is used and shutdown the database
C:\ sqlplus /as sysdba
SQL> alter user b2b identified by b2b account unlock; ; // donot execute for IM –OID installation

SQL> alter system set aq_tm_processes=5 scope=spfile;
SQL> alter system set job_queue_processes=5 scope=spfile;
SQL> alter system set open_cursors=500 scope=spfile;
SQL> commit;
SQL> shutdown immediate;

3. Take the backup of database from oradata directory and name it as orcl_b2b_before

4. Login to database and startup again
C:\ sqlplus /as sysdba
SQL> startup;

5. On j2ee/ midtire terminal start the j2ee server before the installation of b2b
c: /101201/j2ee_0306/opmn/bin/> opmnctl startall

Step 4: B2B installation

1. Go to Shiphome location and click on setup.exe
2. Select the middleware home for b2b installation( Note: Middleware home same as step2)
3. Complete the installation.
4. Once the installation is completed then go to j2ee_0306/ip/config dir and open the tip properties file and change debug levels from ERROR to DEBUG and
change Logtype = text

5. Stop the j2ee server
6. Go back to infra terminal, shutdown the database and take a backup of database and start the database again
c:/ sqlplus /as sysdba
SQL> shutdown immediate;
SQL> quit;
7. Take a backup of database and start the database as orcl_b2b_after.
8. Go to midtire terminal and start the server.

HTTP Basic Authentication

Oracle AS B2B Support HTTP Basic authentication based on Userid and password.

How to Configure basic Authentication.

1. Go to the Transport server section, specify user id and password.
2. In the additional Transport header specify

authtype=basic#realm=myRealm

where myRealm is the realm of the remote trading partner site.

Sunday, October 19, 2008

Oracle B2B Downloads

1. http://www.oracle.com/technology/software/htdocs/devlic.html?url=/technology/software/products/ias/htdocs/101202.html

2. Accept and click on next.

3. Select Application Server Integration(10.1.2.0.2) , download B2B for Appropriate OS

4. Install the latest patch. Follow http://www.b2bgurus.com/2008/07/10123-latest-b2b-patch-details.html

p.S You need to install 10.1.2.0.2 infrastructure database and application server before installing oracle AS B2B.