Sunday, January 29, 2012

Issues and Solutions - Part V

Issue: javax.management.MalformedObjectNameException: Key properties cannot be empty


at javax.management.ObjectName.construct(ObjectName.java:393)

at javax.management.ObjectName.(ObjectName.java:1314)

at com.evermind.server.Application.registerApplicationMBeans(Application.java:3060)

at com.evermind.server.Application.addJ2EEApplicationMBean(Application.java:1742)

at com.evermind.server.ApplicationStateRunning.initializeApplication(ApplicationStateRunning.java:219)

at com.evermind.server.Application.setConfig(Application.java:460)

at com.evermind.server.Application.setConfig(Application.java:361)

at com.evermind.server.ApplicationServer.addApplication(ApplicationServer.java:1919)

at oracle.oc4j.admin.internal.ApplicationDeployer.addApplication(ApplicationDeployer.java:776)

at oracle.oc4j.admin.internal.ApplicationDeployer.doDeploy(ApplicationDeployer.java:273)

at oracle.oc4j.admin.internal.DeployerBase.execute(DeployerBase.java:100)

at oracle.oc4j.admin.jmx.server.mbeans.deploy.OC4JDeployerRunnable.doRun(OC4JDeployerRunnable.java:52)

at oracle.oc4j.admin.jmx.server.mbeans.deploy.DeployerRunnable.run(DeployerRunnable.java:81)

at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)

at java.lang.Thread.run(Thread.java:595)



Solution: Add ":type=Application,name=ManageUtilMBean" in objectname

<jmx-mbean objectname=":type=Application,name=ManageUtilMBean" class="com.oracle.huawei.mbean.ManageUtil">

<description>Manage Oracle AS and BPEL util

<attribute name="Property1">

<value>1

</attribute>

</jmx-mbean>
----------------------------------------------------------------------------------------------------------------

Issue:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/transaction/SystemException

at com.oracle.bpel.client.delivery.DeliveryService.post(DeliveryService.java:228)

at com.oracle.bpel.client.delivery.DeliveryService.post(DeliveryService.java:169)

Solution:

Add jta.jar in your classpath

----------------------------------------------------------------------------------------------------------------



Issue: Unhandled java exception, blocks the process

java.lang.NoClassDefFoundError

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Class.java:246)

at com.evermind.io.ClassLoaderObjectInputStream.resolveClass(ClassLoaderObjectInputStream.java:58)

at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1544)



public void invokeBPEL(IBPELProcessHandle bpelProcessHandle,

String operationName, String payloadName,

String initiateInput) {

try {

IDeliveryService dService =

(IDeliveryService)locator.lookupService(com.oracle.bpel.client.dispatch.IDeliveryService.SERVICE_NAME);


String bpelProcessName =

bpelProcessHandle.getProcessId().getProcessId();

// Create normalized message with payload

NormalizedMessage nm = new NormalizedMessage();

nm.addPart(payloadName, initiateInput);

LOGGER.info("Operation Name: " + operationName);



// Operation Type 1 & 3 are synchronous, 0 and 2 are asynchronous

int operationType =

bpelProcessHandle.getOperationType(operationName);

LOGGER.info("OperationType :" + operationType);

if (operationType == 1

operationType == 3) {

//NormalizedMessage responseNM =

LOGGER.info("Before Sync Invoke");

dService.request(bpelProcessName, operationName, nm);

LOGGER.info("After Sync Invoke");

} else {

LOGGER.info("Before Async Invoke");

dService.post(bpelProcessName, operationName, nm);

LOGGER.info("After Async Invoke");

}

} catch (Exception e) {

LOGGER.info("Got Exception");

e.printStackTrace();

} finally {

LOGGER.info("Finally block: Posted message successfully");

return;

}

}



Solution:

If there is an error after post message bpel call, it throws exception as shown above and it will never catch in Exception block and exits the process without returning back to called method.

To return back to the called method add finally block with empty return for the void method.

Issues and Solutions - Part IV

Issue:


<ERROR><default.collaxa.cube.activation><JMSAdapter::Inbound> JmsConsumer_run: A resource exception occurred while waiting for inbound messages: Generic error.

oracle.jms.AQjmsException: JMS-120: Dequeue failed

at oracle.jms.AQjmsError.throwEx(AQjmsError.java:308)

at oracle.jms.AQjmsConsumer.dequeue(AQjmsConsumer.java:2094)

at oracle.jms.AQjmsConsumer.receiveFromAQ(AQjmsConsumer.java:922)

at oracle.jms.AQjmsConsumer.receiveFromAQ(AQjmsConsumer.java:835)

at oracle.jms.AQjmsConsumer.receive(AQjmsConsumer.java:776)

at oracle.tip.adapter.jms.JMS.JMSMessageConsumer.consumeBlockingWithTimeout(JMSMessageConsumer.java:405)

at oracle.tip.adapter.jms.inbound.JmsConsumer.run(JmsConsumer.java:330)

at oracle.tip.adapter.fw.jca.work.WorkerJob.go(WorkerJob.java:51)

at oracle.tip.adapter.fw.common.ThreadPool.run(ThreadPool.java:280)

at java.lang.Thread.run(Thread.java:595)
[Linked-exception]

java.sql.SQLException: ORA-00600: internal error code, arguments: [kwqidrdq: loop], [0], [0], [0], [0], [], [], []

ORA-06512: at "SYS.DBMS_AQIN", line 571

ORA-06512: at line 1
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:138)

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:316)



Solution: This error occurs due to manual deletion of the AQ messages, due to this error DB Connection pool gets exhausted after certain time limit.

Delete and recreate the queues.

Note: Don't delete the messages from the queue manually from the database

----------------------------------------------------------------------------------------------------------------

Issue:

Unable to convert the XSD element P_CONTACT_IDS whose collection type is AIA.AIA_AGGREGATOR_LIST_OF_IDS_TBL. Cause: java.sql.SQLException: Fail to construct descriptor: Unable to resolve type: "AIA.AIA_AGGREGATOR_LIST_OF_IDS_TBL" [Caused by: Fail to construct descriptor: Unable to resolve type: "AIA.AIA_AGGREGATOR_LIST_OF_IDS_TBL"]


Solution:

Check all the packages are compiled. If not compile all the packages and procedures.



----------------------------------------------------------------------------------------------------------------

Issue:

Error on AIASessionPoolManager.bpel: Operation=Get

SessionPoolHost.getSession(SEBL_01,80002): SessionPoolHost.create() thread[RMICallHandler-55]: Failed to obtain a session after 2 attempts. The web server did not reponded with a session.Login credentials [endpoint: http://:80/eai_enu/start.swe?SWEExtSource=SecureWebService&SWEExtCmd=Execute&UserName=123&Password=1234 ]

java.lang.Throwable: Fault response (or timed out)


Solution:

Set proper AIAConfigurationProperties.xml data

<!-- === Specific values for SEBL_01 === -->

<Property name="SEBL_01.UserId">intuser</Property>

<Property name="SEBL_01.Password">intuser123</Property>

<Property name="SEBL_01.EndpointURI">http://10.18.19.210:80/eai_enu/start.swe?SWEExtSource=SecureWebService&SWEExtCmd=Execute&WSSOAP=1</Property>

Issues and Solutions - Part III

Issue: Error, ESB Could not load XSL transform into the cache for XSL/XSLT.

Solution: Error happens due XSL transformation failure. Check for any function call in the xsl file or check for namespace which is used in XSL and not declared.

----------------------------------------------------------------------------------------------------------------

Issue: [ons-connect] Local connection 5ae182c,127.0.0.1,6100 invalid form factor

Solution1:

i, Change the request port for the opmn.xml file to a value greater than the 6100.

Note: Only change the "Port Local" value, not the "Remote" and "Request" values

Example:

ii, Restart the application server

Solution2:

Stop all opmn and related process forcefully.

Rename persistence to persistence.old in ${ORACLE_HOME}/j2ee/${OC4J_Insatnce}

Note you will not be able to rename the folder if opmn or any related process is still running.

Issues and Solutions - Part II

Issue: Error during BPEL process deployment, BPEL Process is not deployed completely and the process shows in warning state. Unable to redeploy the process again.

Solution: Using below SQL script, remove the failed process entry from orabpel schema.

delete from process where process_id='CreateAccountBalanceAdjustmentBRMCommsProvABCSImpl';

delete from process_descriptor where process_id='CreateAccountBalanceAdjustmentBRMCommsProvABCSImpl';

delete from process_log where process_id='CreateAccountBalanceAdjustmentBRMCommsProvABCSImpl';

delete from process_default where process_id='CreateAccountBalanceAdjustmentBRMCommsProvABCSImpl';



----------------------------------------------------------------------------------------------------------------



Issue: Error while registering ESB, unable to register or says Integration server is down


Solution: Find the failed esb service in the server @ location $ORACLE_HOME/integration/esb/oraesb/artifacts/store and $ORACLE_HOME/integration/esb/oraesb/artifacts/store/metadata and remove it.

Also remove the esb service entry from 'ESB_Projects.def.xml' @ location $ORACLE_HOME/integration/esb/oraesb/artifacts/store/metadata/files and save it.

Issues and Solutions - Part I

Issue: javax.naming.NameNotFoundException: ejb_ob_engine_DeliveryBeanLocal not found

Solution: InvocationMode property should be removed from bpel.xml or composite.xml, otherwise InvocationMode property should be set in all bpel and esb processes involved in same transaction.

----------------------------------------------------------------------------------------------------------------

Issue: Oracle ESB crossreference, populateXRefRow is not populating the data in xref table


Solution: populateXRefRow doesn't populate the cross reference data if the process is failed, cross reference entry will be rolled back after the process failure. Ensure process gets completed successfully to view the cross reference data.