How to check status of instances in Oracle Service Bus (OSB) console.

1.     OSB is a stateless and concept of instance is not applicable. So you cannot view running instances in OSB. One of the ways is to use the log action and you should see the statements in the server logs.

Choose an appropriate log level for the different statements and ensure that the weblogic logging level is also set appropriately.

For example: if the weblogic logging is set to ERROR and you try to have a log action at DEBUG level, you cannot see the logs.
if the weblogic logging is set to DEBUG and if you use log action with levels Debug, Info, Warning, Error – all of them will be visible.

If this is only for your debugging the scenarios, you can also enable tracing (in Operation Settings) on the proxy/business service to capture the complete trace of the execution. But ensure this setting is turned off in PROD environments as this hampers performance.

2.     The server logs can be found at the following location – MiddlewareHome/user_projects/domains/<your_domain>/AdminServer/servers/<AdminServer or your osb server>/logs

3.     You can also use OSB Monitoring to capture the number of messages that were handled by OSB proxy/business service and specific details of how many successful and errored out. Please refer

4.     You can use Report and Alert actions to debug your code. Each one has their specific usage. Please refer


Posted in Oracle Service Bus (OSB), Service Oriented Architecture (SOA 11g) | Tagged , , , | Leave a comment

How to refresh the Iterator from the Managed Bean in ADF Mobile applciation.

When we want to programmatically refresh the Iterator “addressBookResultIterator” the was added in the AMX Page Bindings section from the Managed bean, we need to use the below code –

//refresh the addressBookResultIterator to reflect the changes in the UI after clear the details in the ArrayList

ValueExpression veIter1 =                           (ValueExpression)AdfmfJavaUtilities.getValueExpression(“#{bindings.addressBookResultIterator}”, Object.class);

AmxIteratorBinding iteratorBinding1 =                           (AmxIteratorBinding)veIter1.getValue(AdfmfJavaUtilities.getAdfELContext());


Now the Iterator “addressBookResultIterator” will refresh from the Managed Bean code.

Posted in ADF Mobile | Tagged , , , , | Leave a comment

How to Exit the application from the Managed bean in ADF Mobile.

When we want to exit the application programmatically from the Managed bean we need to use the below code –

AdfmfContainerUtilities.invokeContainerJavaScriptFunction(““, ““, new Object[] {});” is the FeatureId in which we are using this code. You can get the FeatureId value from the adfmf-feature.xml file.” is the out of the box java script function to exit the application.

Posted in ADF Mobile | Tagged , , , | Leave a comment

How to execute the method that is added into the AMX page bindings section from the Managed bean.

  1. We have a method “updatePocEmpView1” added in the AMX page bindings section and want to execute it from the Managed bean. We need to use the below code –

AdfELContext adfELContext = AdfmfJavaUtilities.getAdfELContext();

MethodExpression me = AdfmfJavaUtilities.getMethodExpression(“#{bindings.updatePocEmpView1.execute}”, Object.class, new Class[] {});

me.invoke(adfELContext, new Object[] {});

2. We can execute the method in other way as below using the “AdfmfJavaUtilities.invokeDataControlMethod”, but in this case the method “loadEmpData” need not add to the AMX page bindings section. The “RetrieveEMPData” is the Data control name under the DataControl section.

//If we need to pass any input parameters to the ‘RetrieveEMPData‘ method, we need to set the values as below. If no parameters then we can pass it as null.

InputSearchParam SearchParamObj= new InputSearchParam();
List pnames = new ArrayList();
List params = new ArrayList();
List ptypes = new ArrayList();


try {

AdfmfJavaUtilities.invokeDataControlMethod(“RetrieveEMPData“, null, “loadEmpData“, pnames, params, ptypes);

} catch (AdfInvocationException ex) {

if (AdfInvocationException.CATEGORY_WEBSERVICE.compareTo(ex.getErrorCategory()) == 0) { throw new RuntimeException(“Error with the server.  Please try later.”);


Posted in ADF Mobile | Tagged , , , | Leave a comment

How to get the loggedin Username from the Security context in AMX page and in the Managed bean in ADF Mobile application.

When we use the BasicAuth option for the Login page in ADF Mobile and when the User logged-in to the Mobile application –

To displayed the logged-in user in the AMX page –

<amx:outputText value=” #{securityContext.userName}” id=”ot1″ />

To get the logged-in user in the Managed Bean –

String username = (String)AdfmfJavaUtilities.evaluateELExpression(“#{securityContext.userName}”);

Posted in ADF Mobile | Tagged , , , | Leave a comment

How to Setup ADF Mobile application on Android For Release Mode in Jdeveloper.

If you have begun developing mobile apps with ADF Mobile on Windows, you have already begun deploying onto the Android Emulator and/or a physical Android Device on hand. To speed up the deployment process and overall performance of the ADF Mobile app, deploy your apps using Release Mode. Overall, you’ll never get the android emulator to run like a physical device or like the iOS emulator, but you can improve the performance of apps by deploying them in Release Mode.

Below are steps to get your Android Apps running in Release mode (developed on a Windows PC). Essentially, you’ll be creating a self-signed certificate with Java’s keytool command and deploying apps based on your self-signed certificate.

  1. Open your command-line utility on Windows.
  2. Add the %JDK_Home%/bin directory to the front of your PATH environment variable.
    Note: the JDK Home should be the JDK Home which your JDeveloper is using.
  3. cd to a directory where you want store your self-signed certificate. I put it in the JDeveloper Home, for example C:\Enter the following command to generate a self-signed certificate:
  4. keytool -genkey -v -keystore %Keystore_Name%.keystore -alias %Alias_Name% -keyalg RSA -keysize 2048 -validity 10000JDeveloper
  5. Replace %keystore_name% with the actual filename that you want to specify for the keystore. Replace %Alias_Name%  with the alias name you want to specify. Since it’s a self-signed certificate, you can name this whatever you want.
  6. You’ll be prompted to specify keystore passwords and additional certificate fields. When you’re prompted to enter an alias-key password, just hit enter to have the alias-key password setup to be the same as your keystore password (It keeps things simple).
    See the example below.
  7. Open your JDeveloper. Go to Tools > Preferences. Go to the ADF Mobile > Platforms configuration screen. Click on the Release Make the following configurations:
    Keystore Location: Specify your keystore file’s location in Keystore
    Keystore Password: Specify your password
    Key Alias: Specify your key-alias
    Key Password: If you hit enter when prompted to enter a alias-key password and didnt enter any values, use the Keystore Password value. Otherwise, enter what you put for the alias-key password.Keystore2
  8. Go to your Mobile Application’s Deployment Profile Properties window. Click on Android Options. Switch Build Mode from Debug to Release. Click OKto apply your changes.Keystore3
  9. Deploy your Mobile application into Android emulator or mobile device.
Posted in ADF Mobile | Tagged , , , , | Leave a comment

How to SET the value for a parameter in PageFlow scope and how to READ the same value in the PageFlow scope.

To set the parameter value (USER_NAME) in the PageFlow scope we need use the setPropertyListener component as shown below –

<amx:commandLink text=”#{bindings.submittedBy.inputValue}” id=”cl1″

inlineStyle=”text-align:justify; width:95%; color:Fuchsia;”>

<amx:setPropertyListener id=”spl1″ from=”#{bindings.userName.inputValue}” type=”action”  to=”#{pageFlowScope.USER_NAME}”/>


Here we are storing the Customer name (#{bindings.userName.inputValue}) into the parameter (USER_NAME).

Note: Whenever you add the setPropertyListener component and if it gives the error saying the component cannot be added, then you need to enclose the setPropertyListener component with commandLink component.

To read the value from the PageFlow scope –

ValueExpression strVE = AdfmfJavaUtilities.getValueExpression(“#{pageFlowScope.USER_NAME}”, String.class);

Object obj2 = strVE.getValue(AdfmfJavaUtilities.getAdfELContext());

String strCustomerName = obj2.toString();

Now we have the USER_NAME value in the  strCustomerName  variable.


Posted in ADF Mobile | Tagged , , , , , , | Leave a comment