ERROR:- <Error> <oracle.soa.bpel.engine.ws> <BEA-000000> <got FabricInvocationException weblogic.jms.common.InvalidDestinationException: [JMSClientExceptions:055144]Destination must be a topic, JMSModule!mycompany.dev.queue.Process.ErrorMessage.Routing
CAUSE:- The issue occurred due to incorrect setting of JMS Adapter Outbound Connection Pool. "mycompany.dev.queue.Process.ErrorMessage.Routing" is a queue created in JMSModule. However the outbound connection pool created at JMS Adapter to interact with this queue has IsTopic set as TRUE. This means it is searching for a TOPIC by the name "mycompany.dev.queue.Process.ErrorMessage.Routing" and not a queue.
SOLUTION:- If you are creating JMS Adapter Outbound Connection Pool for QUEUE, set isTopic= FALSE. If you are creating JMS Adapter Outbound Connection Pool for TOPIC, set isTopic= TRUE.
Monday, January 27, 2014
FabricInvocationException weblogic.jms.common.InvalidDestinationException
oracle.xml.parser.schema.XSDException: Can not build schema
CAUSE:- We faced this error during deployment of SampleBPELProcess through JDeveloper. When looked into the log file we found got below log snippet
"Global Type declaration/definition of name '{urn:sobject.enterprise.soap.sforce.com}CSE_Assignment__c' are duplicated at the following locations:
oramds:/deployed-composites/default/SampleBPELProcess_rev2.0.0/SFDCDevEnterpriseWsdl.wsdl [line#: 3739]
oramds:/apps/wsdls/sfdc/SFDCDevEnterpriseWsdl.wsdl [line#: 3738]
There are at least two of them looking different:
oramds:/deployed-composites/default/SampleBPELProcess_rev2.0.0/SFDCDevEnterpriseWsdl.wsdl [difference starting at line#:3774]
oramds:/apps/wsdls/sfdc/SFDCDevEnterpriseWsdl.wsdl [difference starting at line#:3773]"
When verified the WSDL at both the location, they were NOT identical. Thus resulting in the issue.
SOLUTION:- Make sure both the WSDLs are identical in MDS. Now try deployment.
Friday, November 8, 2013
[Jdeveloper] java.net.ConnectException: Connection refused: connect; No available router to destination
Error:-
java.lang.RuntimeException: javax.naming.CommunicationException [Root exception is java.net.ConnectException: t3s://hostname.mycompany.com:8001: Destination unreachable; nested exception is:
java.net.ConnectException: Connection refused: connect; No available router to destination]
at oracle.tip.tools.ide.fabric.asbrowser.WeblogicSOAServer.initPartitions(WeblogicSOAServer.java:89)
at oracle.tip.tools.ide.fabric.asbrowser.WeblogicSOAServer.(WeblogicSOAServer.java:68)
at oracle.tip.tools.ide.fabric.asbrowser.ASBrowserHelper.listWeblogicSOAServers(ASBrowserHelper.java:275)
at oracle.tip.tools.ide.fabric.asbrowser.ASBrowserHelper.listSOAServers(ASBrowserHelper.java:201)
at oracle.tip.tools.ide.fabric.asbrowser.ASBrowserHelper$RunnableListSOAServers.run(ASBrowserHelper.java:333)
at oracle.ide.dialogs.ProgressBar.run(ProgressBar.java:655)
at java.lang.Thread.run(Thread.java:662)
Caused by: javax.naming.CommunicationException [Root exception is java.net.ConnectException: t3s://hostname.mycompany.com:8001: Destination unreachable; nested exception is:
java.net.ConnectException: Connection refused: connect; No available router to destination]
at weblogic.jndi.internal.ExceptionTranslator.toNamingException(ExceptionTranslator.java:40)
at weblogic.jndi.WLInitialContextFactoryDelegate.toNamingException(WLInitialContextFactoryDelegate.java:788)
at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialContextFactoryDelegate.java:368)
at weblogic.jndi.Environment.getContext(Environment.java:315)
at weblogic.jndi.Environment.getContext(Environment.java:285)
at weblogic.jndi.WLInitialContextFactory.getInitialContext(WLInitialContextFactory.java:117)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.(InitialContext.java:197)
at oracle.soa.management.internal.facade.ServerManagerImpl.(ServerManagerImpl.java:76)
at oracle.soa.management.internal.facade.ServerManagerFactoryImpl.createServerManager(ServerManagerFactoryImpl.java:28)
at oracle.tip.tools.ide.fabric.asbrowser.WeblogicSOAServer.initPartitions(WeblogicSOAServer.java:85)
... 6 more
Caused by: java.net.ConnectException: t3s://hostname.mycompany.com:8001: Destination unreachable; nested exception is:
java.net.ConnectException: Connection refused: connect; No available router to destination
at weblogic.rjvm.RJVMFinder.findOrCreateInternal(RJVMFinder.java:216)
at weblogic.rjvm.RJVMFinder.findOrCreate(RJVMFinder.java:170)
at weblogic.rjvm.ServerURL.findOrCreateRJVM(ServerURL.java:153)
at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialContextFactoryDelegate.java:353)
... 16 more
Caused by: java.rmi.ConnectException: Destination unreachable; nested exception is:
java.net.ConnectException: Connection refused: connect; No available router to destination
at weblogic.rjvm.ConnectionManager.bootstrap(ConnectionManager.java:470)
at weblogic.rjvm.ConnectionManager.bootstrap(ConnectionManager.java:321)
at weblogic.rjvm.RJVMManager.findOrCreateRemoteInternal(RJVMManager.java:254)
at weblogic.rjvm.RJVMManager.findOrCreate(RJVMManager.java:197)
at weblogic.rjvm.RJVMFinder.findOrCreateRemoteServer(RJVMFinder.java:238)
at weblogic.rjvm.RJVMFinder.findOrCreateInternal(RJVMFinder.java:200)
Cause:-
The issue was caused by incorrect password of the identity keystore. Below message was seen in the log.
<Nov 8, 2013 4:16:53 AM PST> <Error> <Security> <BEA-090133> <Could not load a JKS keystore from the file /u02/shared/certs/keystore/DemoIdentity.jks. Exception: java.io.IOException: Keystore was tampered with, or password was incorrect>
<Nov 8, 2013 4:16:53 AM PST> <Emergency> <Security> <BEA-090034> <Not listening for SSL, java.io.IOException: Failed to load identity keystore of type JKS from file /u02/shared/certs/keystore/DemoIdentity.jks on server SOA_MngdSvr1.>
Fix:-
1. Update correct password for identity and trust keystores under "keystores" and "SSL" tab for Admin and Managed Servers.
2. Do "Restart SSL" for all the admin and managed servers for which password has been updated. Verify in the log that keystores are loaded without any error now.
3. Try deployment from JDev now.
java.lang.RuntimeException: javax.naming.CommunicationException [Root exception is java.net.ConnectException: t3s://hostname.mycompany.com:8001: Destination unreachable; nested exception is:
java.net.ConnectException: Connection refused: connect; No available router to destination]
at oracle.tip.tools.ide.fabric.asbrowser.WeblogicSOAServer.initPartitions(WeblogicSOAServer.java:89)
at oracle.tip.tools.ide.fabric.asbrowser.WeblogicSOAServer.
at oracle.tip.tools.ide.fabric.asbrowser.ASBrowserHelper.listWeblogicSOAServers(ASBrowserHelper.java:275)
at oracle.tip.tools.ide.fabric.asbrowser.ASBrowserHelper.listSOAServers(ASBrowserHelper.java:201)
at oracle.tip.tools.ide.fabric.asbrowser.ASBrowserHelper$RunnableListSOAServers.run(ASBrowserHelper.java:333)
at oracle.ide.dialogs.ProgressBar.run(ProgressBar.java:655)
at java.lang.Thread.run(Thread.java:662)
Caused by: javax.naming.CommunicationException [Root exception is java.net.ConnectException: t3s://hostname.mycompany.com:8001: Destination unreachable; nested exception is:
java.net.ConnectException: Connection refused: connect; No available router to destination]
at weblogic.jndi.internal.ExceptionTranslator.toNamingException(ExceptionTranslator.java:40)
at weblogic.jndi.WLInitialContextFactoryDelegate.toNamingException(WLInitialContextFactoryDelegate.java:788)
at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialContextFactoryDelegate.java:368)
at weblogic.jndi.Environment.getContext(Environment.java:315)
at weblogic.jndi.Environment.getContext(Environment.java:285)
at weblogic.jndi.WLInitialContextFactory.getInitialContext(WLInitialContextFactory.java:117)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
at javax.naming.InitialContext.init(InitialContext.java:223)
at javax.naming.InitialContext.
at oracle.soa.management.internal.facade.ServerManagerImpl.
at oracle.soa.management.internal.facade.ServerManagerFactoryImpl.createServerManager(ServerManagerFactoryImpl.java:28)
at oracle.tip.tools.ide.fabric.asbrowser.WeblogicSOAServer.initPartitions(WeblogicSOAServer.java:85)
... 6 more
Caused by: java.net.ConnectException: t3s://hostname.mycompany.com:8001: Destination unreachable; nested exception is:
java.net.ConnectException: Connection refused: connect; No available router to destination
at weblogic.rjvm.RJVMFinder.findOrCreateInternal(RJVMFinder.java:216)
at weblogic.rjvm.RJVMFinder.findOrCreate(RJVMFinder.java:170)
at weblogic.rjvm.ServerURL.findOrCreateRJVM(ServerURL.java:153)
at weblogic.jndi.WLInitialContextFactoryDelegate.getInitialContext(WLInitialContextFactoryDelegate.java:353)
... 16 more
Caused by: java.rmi.ConnectException: Destination unreachable; nested exception is:
java.net.ConnectException: Connection refused: connect; No available router to destination
at weblogic.rjvm.ConnectionManager.bootstrap(ConnectionManager.java:470)
at weblogic.rjvm.ConnectionManager.bootstrap(ConnectionManager.java:321)
at weblogic.rjvm.RJVMManager.findOrCreateRemoteInternal(RJVMManager.java:254)
at weblogic.rjvm.RJVMManager.findOrCreate(RJVMManager.java:197)
at weblogic.rjvm.RJVMFinder.findOrCreateRemoteServer(RJVMFinder.java:238)
at weblogic.rjvm.RJVMFinder.findOrCreateInternal(RJVMFinder.java:200)
Cause:-
The issue was caused by incorrect password of the identity keystore. Below message was seen in the log.
<Nov 8, 2013 4:16:53 AM PST> <Error> <Security> <BEA-090133> <Could not load a JKS keystore from the file /u02/shared/certs/keystore/DemoIdentity.jks. Exception: java.io.IOException: Keystore was tampered with, or password was incorrect>
<Nov 8, 2013 4:16:53 AM PST> <Emergency> <Security> <BEA-090034> <Not listening for SSL, java.io.IOException: Failed to load identity keystore of type JKS from file /u02/shared/certs/keystore/DemoIdentity.jks on server SOA_MngdSvr1.>
Fix:-
1. Update correct password for identity and trust keystores under "keystores" and "SSL" tab for Admin and Managed Servers.
2. Do "Restart SSL" for all the admin and managed servers for which password has been updated. Verify in the log that keystores are loaded without any error now.
3. Try deployment from JDev now.
Tuesday, October 29, 2013
[JDeveloper] javax.net.ssl.SSLKeyException: [Security:090542] Certificate chain received from soa-dev.corp.xxx.com - 10.XXX.XXX.XXX was not trusted causing handshake failure
ISSUE:-
CAUSE:-
This issue is because the client (JDev) is not trusting the
certificate chain received from the server. So the solution here is to add the
certificate of the server into trust store of Jdeveloper.
SOLUTION:-
1. Open
JDeveloper
2. Goto Tools
-> Preferences -> Credentials
1
3. Go to the location mentioned in “Client Trusted
Certificate Keystore”
4. Backup DemoTrust.jks
5. Import the public key/certificate of the server you are
trying to connect into DemoTrust.jks.
6. Restart Jdev
7. Try now
Friday, October 25, 2013
JAVA API to abort RUNNING SOA Composite Instances
I got a requirement from our client to create a JAVA API that can abort all the RUNNING composite instances. This was required as purging script do not purge composite instances in running instances.
import java.util.Hashtable;
import java.util.List;
import javax.naming.Context;
import oracle.soa.management.facade.Component;
import oracle.soa.management.facade.ComponentInstance;
import oracle.soa.management.facade.Composite;
import oracle.soa.management.facade.Locator;
import oracle.soa.management.facade.LocatorFactory;
import oracle.soa.management.util.ComponentInstanceFilter;
import oracle.soa.management.util.CompositeInstanceFilter;
import oracle.soa.management.facade.CompositeInstance;
import oracle.soa.management.CompositeDN;
public class abortComposite {
public abortComposite() {
super();
}
public void abortRunningComposite() {
Locator locator = null;
Hashtable jndiProps = new Hashtable();
//Connection Details to Connect to Server
jndiProps.put(Context.PROVIDER_URL, "t3://hostname:portnumber/soa-infra");
jndiProps.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
jndiProps.put(Context.SECURITY_PRINCIPAL, "weblogic");
jndiProps.put(Context.SECURITY_CREDENTIALS, "password");
jndiProps.put("dedicated.connection", "true");
try {
//Connect to SOA Server
locator = LocatorFactory.createLocator(jndiProps);
System.out.println("Connected to SOA Server.");
java.util.List compositeDN=locator.listComposites();
CompositeInstanceFilter filter = new CompositeInstanceFilter();
//Set Minimum Creation Time
filter.setMinCreationDate(new java.util.Date("Tue Aug 10 13:22:02 PDT 2013"));
//Set Maximum Creation Time
filter.setMaxCreationDate(new java.util.Date("Tue Aug 30 13:22:02 PDT 2013"));
//Set for RUNNING State
filter.setState(0);
Composite composite=null;
List obInstances=null;
//For each of the returned composite
for (CompositeDN compositeDN1 : compositeDN) {
composite = locator.lookupComposite(compositeDN1);
//Get composite instances by filter
obInstances = composite.getInstances(filter);
//for each of the returned composite instances
for (CompositeInstance instance : obInstances) {
System.out.println(" DN: " + instance.getCompositeDN() + " Instance: " + instance.getId() + " creation-date: " + instance.getCreationDate() + " state (" + instance.getState() + "): " + getStateAsString(instance.getState()));
//Set up a component filter
ComponentInstanceFilter cInstanceFilter = new ComponentInstanceFilter();
//Get child component instances
List childComponentInstances = instance.getChildComponentInstances(cInstanceFilter);
//For each child component instance
for (ComponentInstance cInstance : childComponentInstances) {
System.out.println(" -> componentinstance: " + cInstance.getComponentName() + " type: " + cInstance.getServiceEngine().getEngineType() + " state: " +getStateAsString(cInstance.getState()));
System.out.println("State: "+cInstance.getNormalizedStateAsString());
}
instance.abort();
}
obInstances=null;
}
}
catch (Exception e) {
System.out.println("Exception in API " + e);
}
}
private String getStateAsString(int state){
//Note that this is dependent on whether the composite state is captured or not
if (state == CompositeInstance.STATE_COMPLETED_SUCCESSFULLY)
return ("success");
else if (state == CompositeInstance.STATE_FAULTED)
return ("faulted");
else if (state == CompositeInstance.STATE_RECOVERY_REQUIRED)
return ("recovery required");
else if (state == CompositeInstance.STATE_RUNNING)
return ("running");
else if (state == CompositeInstance.STATE_STALE)
return ("stale");
else
return ("unknown");
}
public static void main(String[] args) {
abortComposite abortcomposite=new abortComposite();
abortcomposite.abortRunningComposite();
}
}
Steps:-
Set Classpath
export CLASSPATH=$CLASSPATH:$ORACLE_FMW_HOME/oracle_common/soa/modules/oracle.soa.mgmt_11.1.1/soa-infra-mgmt.jar:$ORACLE_FMW_HOME/oracle_common/modules/oracle.fabriccommon_11.1.1/fabric-common.jar:$ORACLE_FMW_HOME/wlserver_10.3/server/lib/weblogic.jar:$ORACLE_FMW_HOME/oracle_common/modules/oracle.jrf_11.1.1/jrf-api.jar
Compile the code
javac abortComposite.java
Execute the Code
java abortComposite
JAVA API Source Code-
import java.util.Hashtable;
import java.util.List;
import javax.naming.Context;
import oracle.soa.management.facade.Component;
import oracle.soa.management.facade.ComponentInstance;
import oracle.soa.management.facade.Composite;
import oracle.soa.management.facade.Locator;
import oracle.soa.management.facade.LocatorFactory;
import oracle.soa.management.util.ComponentInstanceFilter;
import oracle.soa.management.util.CompositeInstanceFilter;
import oracle.soa.management.facade.CompositeInstance;
import oracle.soa.management.CompositeDN;
public class abortComposite {
public abortComposite() {
super();
}
public void abortRunningComposite() {
Locator locator = null;
Hashtable jndiProps = new Hashtable();
//Connection Details to Connect to Server
jndiProps.put(Context.PROVIDER_URL, "t3://hostname:portnumber/soa-infra");
jndiProps.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
jndiProps.put(Context.SECURITY_PRINCIPAL, "weblogic");
jndiProps.put(Context.SECURITY_CREDENTIALS, "password");
jndiProps.put("dedicated.connection", "true");
try {
//Connect to SOA Server
locator = LocatorFactory.createLocator(jndiProps);
System.out.println("Connected to SOA Server.");
java.util.List
CompositeInstanceFilter filter = new CompositeInstanceFilter();
//Set Minimum Creation Time
filter.setMinCreationDate(new java.util.Date("Tue Aug 10 13:22:02 PDT 2013"));
//Set Maximum Creation Time
filter.setMaxCreationDate(new java.util.Date("Tue Aug 30 13:22:02 PDT 2013"));
//Set for RUNNING State
filter.setState(0);
Composite composite=null;
List
//For each of the returned composite
for (CompositeDN compositeDN1 : compositeDN) {
composite = locator.lookupComposite(compositeDN1);
//Get composite instances by filter
obInstances = composite.getInstances(filter);
//for each of the returned composite instances
for (CompositeInstance instance : obInstances) {
System.out.println(" DN: " + instance.getCompositeDN() + " Instance: " + instance.getId() + " creation-date: " + instance.getCreationDate() + " state (" + instance.getState() + "): " + getStateAsString(instance.getState()));
//Set up a component filter
ComponentInstanceFilter cInstanceFilter = new ComponentInstanceFilter();
//Get child component instances
List
//For each child component instance
for (ComponentInstance cInstance : childComponentInstances) {
System.out.println(" -> componentinstance: " + cInstance.getComponentName() + " type: " + cInstance.getServiceEngine().getEngineType() + " state: " +getStateAsString(cInstance.getState()));
System.out.println("State: "+cInstance.getNormalizedStateAsString());
}
instance.abort();
}
obInstances=null;
}
}
catch (Exception e) {
System.out.println("Exception in API " + e);
}
}
private String getStateAsString(int state){
//Note that this is dependent on whether the composite state is captured or not
if (state == CompositeInstance.STATE_COMPLETED_SUCCESSFULLY)
return ("success");
else if (state == CompositeInstance.STATE_FAULTED)
return ("faulted");
else if (state == CompositeInstance.STATE_RECOVERY_REQUIRED)
return ("recovery required");
else if (state == CompositeInstance.STATE_RUNNING)
return ("running");
else if (state == CompositeInstance.STATE_STALE)
return ("stale");
else
return ("unknown");
}
public static void main(String[] args) {
abortComposite abortcomposite=new abortComposite();
abortcomposite.abortRunningComposite();
}
}
Steps:-
Set Classpath
export CLASSPATH=$CLASSPATH:$ORACLE_FMW_HOME/oracle_common/soa/modules/oracle.soa.mgmt_11.1.1/soa-infra-mgmt.jar:$ORACLE_FMW_HOME/oracle_common/modules/oracle.fabriccommon_11.1.1/fabric-common.jar:$ORACLE_FMW_HOME/wlserver_10.3/server/lib/weblogic.jar:$ORACLE_FMW_HOME/oracle_common/modules/oracle.jrf_11.1.1/jrf-api.jar
Compile the code
javac abortComposite.java
Execute the Code
java abortComposite
Subscribe to:
Posts (Atom)


