Monday, 30 December 2013

Rejected messages in a jca DB polling adapter

I am writing this post as it may help others who have missed the oracle documentation on rejection handlers.
Whenever a polling inbound adapter (DBAdapter,File Adapter) fails after a specified number of retires the message is then moved to the specified rejection handler. The message can be later handled according to the business requirement.

Rejection Handler:
The rejection handlers can be a
  • Web Service Handler
  • Custom Java Handler
  • JMS Queue
  • File (Default)

    The rejected messages can be viewed by two ways
    • Querying the DEV_SOA_INFRA 
    select * from rejected_message
    • Looking at the console for rejected messages
    You can view the rejected messages in the Recent Faults and Rejected Messages section of the Dashboard tab or in the Faults and Rejected Messages tab.

By default if  a rejection handler is not configured a file-based rejection handler kicks in.
The messages are found at the below locations based on BPEL/OSB being used
  • FOR OSB <domain_home>/jca/receive/rejectedMessages.
  • For bpel the path is <domain_home>/rejmsgs/<wls_server_name>/<composite_name>
If it is a clustered environment you can find the folders at all managed servers path(Physical file path) .Rejected messages are stored in the database (specifically, in the rejected_message table) by default. Currently, the Oracle SOA suite does not provide the capability to resubmit rejected messages; consequently it is your responsibility to take care of the resubmission

 

Configuring rejection handler in BPEL

This is a sample faultpolicies.xml which can be used to configure the rejection handler folder in BPEL process. For more information on fault handling in bpel refer to other blog posts

 

Configuring rejection handler in OSB

If you want to configure rejected message folder in OSB use the "rejectedMessageHandlers" property as dynamic endpoint property in the jca transport as shown below
Please note that you can only configure directory in osb and configuring file name is not available .
These are the following steps
  1. Navigate to the inbound proxy service that does the polling
  2. Select the jca transport tab

  3. Scroll down to dynamic end point properties

  4. Enter property name rejectedMessageHandlers and value as file://<dirpath> (The dirpath should be the path on the server)



  5. Click + symbol on the actions tab and deploy it to the server
Now you should be able to see the rejected messages in the directory specified if they get rejected.

 

Wednesday, 30 October 2013

Configuring the $outbound headers in OSB

We can configure $outbound headers dynamically in OSB.

If you want to change the $outbound headers don't use assign,replace .Add the following
in the publish add the component

STAGE ACTIONS>COMMUNICATION > Transport Headers 


Configure the header there





Monday, 21 October 2013

Configuring the input payload of a OSB publish

I was wondering how to specify the input parameter of a publish activity. After a long search i found it's quite simple

CHANGE THE BODY PAYLOAD INSIDE THE PUBLISH ACTIVITY


You can use either assign activity or replace activity

NOTE: THIS SHOULD BE DONE INSIDE THE PUBLISH ACTIVITY

Replace:




Assign:

Use the specified tags


<soap-env:Body xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">  <!-- Your message goes here-->
</soap-env:Body>

Friday, 6 September 2013

OSB deployment error while deploying from ant script

If you are following any blog for deploying oepe project by compiling when you move workspace directories to another location you would generally face the following issue.


Cannot find the OSB Configuration in the specified directory your OSB Configuration name

Though the project does exists in the current directory

This can be solved by specifing the property absolute


workspace.dir= .  to workspace.dir="mention your complete path"

If you would like to use relative path you can use the following way it specifies the path of the ant script file

workspace.dir="${user.dir}"


Friday, 30 August 2013

OER(Oracle enterprise repository) conflicting ports

This may generally occur if you change the port in the admin console and use the same to access the oer.Try to correct it to the one that shows in the browser
When you try to access oer from url the following error may arise due to conflicting ports

This can be resolved by correcting port of the oer server(In admin console) . Check the below screen shot . The navigation is
Environment>Server>ClickOnit>In general tab


You can enlarge the image to see for any doubts.



Thursday, 29 August 2013

Default username and password for OER(Oracle Enterprise Repository) console

After a sucessful installation of oer(oracle enterprise repository). You have to login using the url\

http://host-name:port/ oer

If you run only with http://host-name:port you will get a 403 error.
The default username and password are


username:admin
password:admin


Though sounds silly would be useful for someone like me ;).

Authentication denied: Boot identity not valid

Authentication denied: Boot identity not valid; The user name and/or password from the boot identity file (boot.properties) is not valid.

This would probably arise if you start your managed server by running the .bat/.sh file and providing a wrong username or password.

The solution for this delete LDAP folder from the following path

${fmw.home}\user_projects\domains\${domain.name}\servers\${managedserver}\data


Now everything is good to go . Cheers :)

Problem while running all of the servers in the same machine i.e, adminserver ,osb ,oer

When you try to run all of the admin server and managed server in the same machine the following problem occur

starting weblogic with Java version:
FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)
ERROR: transport error 202: bind failed: Address already in use

You can solve this by just commenting a line in the file setDomainEnv.bat/.sh  which can be found at
${fmw.home}\user_projects\domains\${domain.name}\bin 

comment the line 
Before
 set debugFlag=true
After
 
REM set debugFlag=true


The reason is pretty simple first when you run the admin server it setups the java debugger listening on the port. When you try to start the managed server it too tries setup the debugger and fails.

Wednesday, 28 August 2013




java.sql.SQLSyntaxErrorException: ORA-00928: missing SELECT keyword while installing can be found in the log. The solution is you have missed configuring the database


You have to install the required schema before you can actually configure the database . You can search in the internet which has many blogs.

You can reopen the configuration in the following path ${oerhome}/common/bin/dbconfig.bat or dbconfig.sh based on the os.

http://oraclefusion1011.blogspot.in/2011/07/installing-oracle-enterprise-repository.html