Why does the OracleEBS adapter say “Could not retrieve User ID, Responsibility ID, and Application ID”?

Sometimes, the Oracle EBS adapter throws this error while invoking artifacts like Concurrent Programs, Interface Tables, Interface Views and a few PL-SQL APIs.

The message in the event viewer looks like the following (snipped some portions to improve readability):

Event Type: Warning
Event Source: BizTalk Server 2009
...

Description:
The adapter failed to transmit message going to send port "<your_send_port_name>" with URL "oracleebs://<YourURI>". It will be retransmitted after the retry interval specified for this Send Port.

Details:"Microsoft.ServiceModel.Channels.Common.ConnectionException: Could not retrieve User ID, Responsibility ID, and Application ID. These values are required to set the application context. Make sure that you have specified correct values in the binding properties or the message context properties for setting the application context.

---> Microsoft.ServiceModel.Channels.Common.MetadataException:

---> Oracle.DataAccess.Client.OracleException ORA-01403:

....

at Microsoft.Adapters.OracleEBS.OracleEBSConnection.InitializeApps(...)
at Microsoft.Adapters.OracleEBS.OracleEBSConnection.OpenConnection(...)

The Oracle adapter throws this error when it is not able to set app context using the Responsibility-Name (or responsibility-key), application-short-name and apps-user provided by the user. You can read up on app-context in earlier blogs posts (https://blogs.msdn.com/adapters/archive/2008/10/14/oracle-ebs-adapter-application-context.aspx  and https://blogs.msdn.com/adapters/archive/2008/10/17/precedence-while-setting-application-context-in-oracle-ebs-adapter.aspx).

 

One of the commonly asked questions is "How do I determine the correct responsibility name to be used? ".

 

Here is a tool that you can use to determine the responsibility that you need to set app context. The tool will prompt will prompt you for relevant details like credentials, application short name etc.

 

Usage: CheckAppContext [/Responsibility:<Responsibility>]

 

- If the responsibility name is not provided, the tool lists the valid responsibilities that could be used for the apps user <AppsUserName> in the application <AppsShortName>.

 

- If the responsibility name is provided, the tool checks whether the provided combination of <AppsShortName> and <Responsibilty> can be used to set app context for the Apps User <AppsUserName>.

 

NOTE: The responsibility should be enclosed in quotes if it has spaces else quotes are not required .

CheckAppContext.exe