and a prosperous 2012
Impress your friends with this great Dr Spock costume! Available on ebay!
Saturday, December 31, 2011
Thursday, December 29, 2011
Coherence cluster interference
####<Dec 28, 2011 12:32:51 PM CET> <Warning> <Coherence> <acme102> <osbdv1ms1> <Logger@1780819408 3.6.0.4> <<anonymous>> <> <0000JI4RpfkE8Tk5ozx0iY1Eyjr6000002> <1325071971843> <BEA-000000> <Oracle Coherence 3.6.0.4 (member=n/a): Received a discovery message that indicates the presence of an existing cluster that does not respond to join requests; this is usually caused by a network layer failure:
Message "SeniorMemberHeartbeat"
{
FromMember=Member(Id=1, Timestamp=2011-11-24 15:56:30.477, Address=13.53.53.189:7890, MachineId=14269, Location=process:26431, Role=OSB-node)
FromMessageId=0
Internal=false
MessagePartCount=1
PendingCount=0
MessageType=17
ToPollId=0
Poll=null
Packets
{
[000]=Broadcast{PacketType=0x0DDF00D2, ToId=0, FromId=1, Direction=Incoming, ReceivedMillis=12:32:51.842, MessageType=17, ServiceId=0, MessagePartCount=1, MessagePartIndex=0, Body=0}
}
Service=ClusterService{Name=Cluster, State=(SERVICE_STARTED, STATE_ANNOUNCE), Id=0, Version=3.6}
ToMemberSet=null
NotifySent=false
LastRecvTimestamp=none
MemberSet=MemberSet(Size=1, BitSetCount=1, ids=[1])
}>
https://forums.oracle.com/forums/thread.jspa?threadID=1068440
we need either to add
-Dtangosol.coherence.wka=localhost -Dtangosol.coherence.ttl=0 -Dtangosol.coherence.localhost=127.0.0.1
to the JVM parameters, or make sure each installation has a unique Coherence cluster multicast address
If you get forever this message:
"Delaying formation of a new cluster; waiting for well-known nodes to respond"
read here: http://docs.oracle.com/cd/E24290_01/coh.371/e22837/cluster_setup.htm#CEGGHCAB
then remove the wka option and use an explicit address:
-Dtangosol.coherence.clusteraddress=224.3.6.0 -Dtangosol.coherence.clusterport=3059
Message "SeniorMemberHeartbeat"
{
FromMember=Member(Id=1, Timestamp=2011-11-24 15:56:30.477, Address=13.53.53.189:7890, MachineId=14269, Location=process:26431, Role=OSB-node)
FromMessageId=0
Internal=false
MessagePartCount=1
PendingCount=0
MessageType=17
ToPollId=0
Poll=null
Packets
{
[000]=Broadcast{PacketType=0x0DDF00D2, ToId=0, FromId=1, Direction=Incoming, ReceivedMillis=12:32:51.842, MessageType=17, ServiceId=0, MessagePartCount=1, MessagePartIndex=0, Body=0}
}
Service=ClusterService{Name=Cluster, State=(SERVICE_STARTED, STATE_ANNOUNCE), Id=0, Version=3.6}
ToMemberSet=null
NotifySent=false
LastRecvTimestamp=none
MemberSet=MemberSet(Size=1, BitSetCount=1, ids=[1])
}>
https://forums.oracle.com/forums/thread.jspa?threadID=1068440
we need either to add
-Dtangosol.coherence.wka=localhost -Dtangosol.coherence.ttl=0 -Dtangosol.coherence.localhost=127.0.0.1
to the JVM parameters, or make sure each installation has a unique Coherence cluster multicast address
If you get forever this message:
"Delaying formation of a new cluster; waiting for well-known nodes to respond"
read here: http://docs.oracle.com/cd/E24290_01/coh.371/e22837/cluster_setup.htm#CEGGHCAB
then remove the wka option and use an explicit address:
-Dtangosol.coherence.clusteraddress=224.3.6.0 -Dtangosol.coherence.clusterport=3059
Labels:
coherence
Local OSB protocol is ACTUALLY local
It seems that LOCAL doesn’t load balance stuff..."Local" means "NOT Remote", so all calls are within the same JVM.
I have done this test:
CLIENT -> HTTP PS deployed in cluster -> publish to LOCAL PS
Client sends all requests to only 1 HTTP service on server ms1 of the cluster made by ms1,ms2.
Only the LOCAL PS on the ms1 is invoked. ms2 shows no activity.
What if instead of LOCAL protocol I use some remotable protocol like HTTP? Is Server Affinity going to kick in, so all requests will stay anyway local? I am too lazy to test this now... maybe one day...
I have done this test:
CLIENT -> HTTP PS deployed in cluster -> publish to LOCAL PS
Client sends all requests to only 1 HTTP service on server ms1 of the cluster made by ms1,ms2.
Only the LOCAL PS on the ms1 is invoked. ms2 shows no activity.
What if instead of LOCAL protocol I use some remotable protocol like HTTP? Is Server Affinity going to kick in, so all requests will stay anyway local? I am too lazy to test this now... maybe one day...
Labels:
OSB
Wednesday, December 28, 2011
Test Console service is not running. Contact administrator to start this service
I was unable to test a Proxy/Business service, and getting the error message
"Test Console service is not running. Contact administrator to start this service"
I opened the AdminServer logs and it was full of:
An exception [java.lang.StackOverflowError] was thrown while rendering the content at [/jsp/dashboard/DashboardAlerts.jsp].
javax.servlet.ServletException: java.lang.StackOverflowError
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:341)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at org.apache.beehive.netui.pageflow.PageFlowPageFilter.continueChainNoWrapper(PageFlowPageFilter.java:455)
at org.apache.beehive.netui.pageflow.PageFlowPageFilter.doFilter(PageFlowPageFilter.java:114)
It is unclear how the server got itself in that state.... anyway restarting AdminServer and Managed Servers fixed the issue.... weird.
"Test Console service is not running. Contact administrator to start this service"
I opened the AdminServer logs and it was full of:
An exception [java.lang.StackOverflowError] was thrown while rendering the content at [/jsp/dashboard/DashboardAlerts.jsp].
javax.servlet.ServletException: java.lang.StackOverflowError
at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:341)
at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at org.apache.beehive.netui.pageflow.PageFlowPageFilter.continueChainNoWrapper(PageFlowPageFilter.java:455)
at org.apache.beehive.netui.pageflow.PageFlowPageFilter.doFilter(PageFlowPageFilter.java:114)
It is unclear how the server got itself in that state.... anyway restarting AdminServer and Managed Servers fixed the issue.... weird.
Labels:
OSB
Removing empty optional elements erroneously inserted by mapping
if a XQuery mapping, theoretically you should check for existence of an optional element in the source, and only if it exists you create it on the destination:
if ($myvar/customer/shoesize) then
<shoesize>
data($myvar/customer/shoesize)
</shoesize>
If the developer likes to take shortcuts (=is a lazy bum), and doesn't do the "if", you must clean the garbage afterwards.
You can use the action:
delete //*[not(node()) and not(.//@*)] from body
if ($myvar/customer/shoesize) then
<shoesize>
data($myvar/customer/shoesize)
</shoesize>
If the developer likes to take shortcuts (=is a lazy bum), and doesn't do the "if", you must clean the garbage afterwards.
You can use the action:
delete //*[not(node()) and not(.//@*)] from body
Labels:
XQuery
Book: The Definitive Guide to SOA Oracle Service Bus
Definitely worth reading, with plenty of source code available at their site:
http://www.apress.com/downloadable/download/sample/sample_id/279/
Labels:
books
Tuesday, December 27, 2011
EOL issues on Unix/Windows
in vi, if you want to view a file in HEX mode, do this:
:%!xxd
line feed=10=0x0A (\n)
carriage return=13=0x0D (\r)
in Windows, a EOL is defined by \r\n (0D0A)
in Unix, a EOL is defined by \n (0A)
to change EOL to some other character:
tr '\n' '#' < test1.txt > test2.txt
to turn a Windows file into Unix:
dos2unix filename
Excellent Notepad++ to convert one format into another (Edit/EOL conversion)
:%!xxd
line feed=10=0x0A (\n)
carriage return=13=0x0D (\r)
in Windows, a EOL is defined by \r\n (0D0A)
in Unix, a EOL is defined by \n (0A)
to change EOL to some other character:
tr '\n' '#' < test1.txt > test2.txt
to turn a Windows file into Unix:
dos2unix filename
Excellent Notepad++ to convert one format into another (Edit/EOL conversion)
Labels:
unix
Disabling debatching in Oracle JCA File Adapter
If in the JCA file adapter file you specify PublishSize=1, the file translator will
consider that every LINE (up to EOL) in your file is a MESSAGE.
Even if the Root Element of my message is a complexType made by a sequence of subtypes, the NXSDTranslator will dispatch a message to OSB PER EACH LINE, and the message will contain ONLY THE SUBTYPE, not the Root Element.
Even if you specify uniqueMessageSeparator="someweirdstring", it will keep doing the same trick.
In the log, you see:
jca.file.BatchIndex=1 (2, 3... up to the number of lines in the file)
jca.file.Batch=CsHjmLiOA8VinpSTERKIh6cfUYmxQvUbZzfDlDH0DRI
(all the messages in the same Batch (=file) have the same jca.file.Batch property)
The only way to avoid this DEBATCHING (split a message in multiple submessages) is to explicitly set the PublishSize to a BLANK value (default is 1).
see doc here
PublishSize: This property indicates whether the file contains multiple messages and how many messages to publish to the BPEL process at a time. The parameter is of type int and is not mandatory. The default value is 1.
For example, if a certain file has 11 records and this parameter is set to 2, then the file will be processed 2 records at a time and the final record will be processed in the sixth iteration.
Pay attention to the JCA file, the PublishSize can be nested there.
Look in the nXSD file, there can be a nxsd:publishSize clause, set it to "" (an empty string)
In the logs, per each batch element you will see a separate invocation to the translator:
Invoking inbound translation for : PuO20111212_164122_1640.txt
InboundTranslatorDelegate:: Ordinary DOM Created
Completed inbound translation for : PuO20111212_164122_1640.txt
Classes to monitor:
oracle.tip.pc.services.translation.xlators.nxsd.NXSDTranslatorImpl
(method xlator.translateFromNative(in, res, xlationCtx))
oracle.tip.adapter.file.inbound.ProcessorDelegate
(ProcessorDelegate.process(FileInfo) and does a doXlate)
oracle.tip.adapter.file.inbound.FileActivationSpec
see also http://javatoolsforweblogic.googlecode.com/svn/trunk/nxsd/Translate.java for how to invoke the NXSDTranslatorImpl from CLI
consider that every LINE (up to EOL) in your file is a MESSAGE.
Even if the Root Element of my message is a complexType made by a sequence of subtypes, the NXSDTranslator will dispatch a message to OSB PER EACH LINE, and the message will contain ONLY THE SUBTYPE, not the Root Element.
Even if you specify uniqueMessageSeparator="someweirdstring", it will keep doing the same trick.
In the log, you see:
jca.file.BatchIndex=1 (2, 3... up to the number of lines in the file)
jca.file.Batch=CsHjmLiOA8VinpSTERKIh6cfUYmxQvUbZzfDlDH0DRI
(all the messages in the same Batch (=file) have the same jca.file.Batch property)
The only way to avoid this DEBATCHING (split a message in multiple submessages) is to explicitly set the PublishSize to a BLANK value (default is 1).
see doc here
PublishSize: This property indicates whether the file contains multiple messages and how many messages to publish to the BPEL process at a time. The parameter is of type int and is not mandatory. The default value is 1.
For example, if a certain file has 11 records and this parameter is set to 2, then the file will be processed 2 records at a time and the final record will be processed in the sixth iteration.
Pay attention to the JCA file, the PublishSize can be nested there.
Look in the nXSD file, there can be a nxsd:publishSize clause, set it to "" (an empty string)
In the logs, per each batch element you will see a separate invocation to the translator:
Invoking inbound translation for : PuO20111212_164122_1640.txt
InboundTranslatorDelegate:: Ordinary DOM Created
Completed inbound translation for : PuO20111212_164122_1640.txt
Classes to monitor:
oracle.tip.pc.services.translation.xlators.nxsd.NXSDTranslatorImpl
(method xlator.translateFromNative(in, res, xlationCtx))
oracle.tip.adapter.file.inbound.ProcessorDelegate
(ProcessorDelegate.process(FileInfo) and does a doXlate)
oracle.tip.adapter.file.inbound.FileActivationSpec
see also http://javatoolsforweblogic.googlecode.com/svn/trunk/nxsd/Translate.java for how to invoke the NXSDTranslatorImpl from CLI
Labels:
nxsd
WebLogic and AspectJ
Zillions of times I have wished in my life to be able to tell which methods are being executed in an application deployed in WLS, and the values of the parameters and return values. Call it "tracing method execution in weblogic".
If no debug statements exist in the WLS code or in the application, the only way is to weave the classes with some AOP product.
So here I go:
download AspectJ 1.7 http://www.eclipse.org/aspectj/
download WLS 12 http://www.oracle.com/technetwork/middleware/ias/downloads/wls-main-097127.html
about load-time weaving with a premain function using javaagent
http://www.eclipse.org/aspectj/doc/next/devguide/ltw-configuration.html
In setDomainEnv there is a property JAVA_PROFILE
I set it to
-javaagent:C:/apps/aspectj/lib/aspectjweaver.jar
after checking the WLS classpath, I see that the . directory (C:\Oracle\Middleware\user_projects\domains\base_domain) is in the classpath (because I have a System Variable CLASSPATH=.)
I create then a C:\Oracle\Middleware\user_projects\domains\base_domain\META-INF\aop.xml file where I define an INLINE ASPECT (no need to precompile separately with ajc):
Here is the aspect, to be compiled and put in the classpath (you will need to add the AspectJ jars to the Eclipse project)
and this is the aop.xml:
for some reasons, it doesn't work....
I can see in the stdout:
[JspClassLoader@72d4e5] info AspectJ Weaver Version 1.7.0.M1 built on Friday Dec 16, 2011 at 16:56:09 GMT
[JspClassLoader@72d4e5] info register classloader weblogic.servlet.jsp.JspClassLoader@72d4e5
[JspClassLoader@72d4e5] info using configuration /C:/Oracle/Middleware/user_projects/domains/base_domain/META-INF/aop.xml
[JspClassLoader@72d4e5] info define aspect com.pierre.aop.MyTracing
[ChangeAwareClassLoader@f45732] info AspectJ Weaver Version 1.7.0.M1 built on Friday Dec 16, 2011 at 16:56:09 GMT
[ChangeAwareClassLoader@f45732] info register classloader weblogic.utils.classloaders.ChangeAwareClassLoader@f45732
[ChangeAwareClassLoader@f45732] info using configuration /C:/Oracle/Middleware/user_projects/domains/base_domain/META-INF/aop.xml
[ChangeAwareClassLoader@f45732] info define aspect com.pierre.aop.MyTracing
My JSP does:
AOPCUT aopcut = new AOPCUT();
aopcut.hello("pierre");
where the AOPCUT class is
package com.pierre.aop;
public class AOPCUT {
public void hello(String message) {
System.out.println("Hello " + message);
}
}
and the interceptor gets called....
If no debug statements exist in the WLS code or in the application, the only way is to weave the classes with some AOP product.
So here I go:
download AspectJ 1.7 http://www.eclipse.org/aspectj/
download WLS 12 http://www.oracle.com/technetwork/middleware/ias/downloads/wls-main-097127.html
about load-time weaving with a premain function using javaagent
http://www.eclipse.org/aspectj/doc/next/devguide/ltw-configuration.html
In setDomainEnv there is a property JAVA_PROFILE
I set it to
-javaagent:C:/apps/aspectj/lib/aspectjweaver.jar
after checking the WLS classpath, I see that the . directory (C:\Oracle\Middleware\user_projects\domains\base_domain) is in the classpath (because I have a System Variable CLASSPATH=.)
I create then a C:\Oracle\Middleware\user_projects\domains\base_domain\META-INF\aop.xml file where I define an INLINE ASPECT (no need to precompile separately with ajc):
Here is the aspect, to be compiled and put in the classpath (you will need to add the AspectJ jars to the Eclipse project)
package com.pierre.aop; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Pointcut; @Aspect public abstract class AbstractAspect { @Before("execution(* *(..))") public void before(JoinPoint jp) { System.out.println("CIAOOOOO"); } @Pointcut("execution(public * *(..))") public void anyPublicOperation() { System.out.println("anyPublicOperation"); } }
and this is the aop.xml:
<aspectj> <aspects> <!-- define a concrete aspect inline --> <concrete-aspect name="com.pierre.aop.MyTracing" extends="com.pierre.aop.AbstractAspect"> <!--pointcut name="tracingScope" expression="within(com.pierre.*)"/--> </concrete-aspect> <!-- Of the set of aspects declared to the weaver use aspects matching the type pattern "com.pierre..*" for weaving. --> <include within="com.pierre..*"/> </aspects> <weaver options="-verbose"> <!-- Weave types that are within the javax.* or org.aspectj.* packages. Also weave all types in the foo package that do not have the @NoWeave annotation. --> <include within="com.pierre.*"/> <!-- Dump all types within the "somepack" package, both before are after they are woven, to the "./_ajdump" folder on disk (for diagnostic purposes) --> <dump within="com.pierre.*" /> </weaver> </aspectj>
for some reasons, it doesn't work....
I can see in the stdout:
[JspClassLoader@72d4e5] info AspectJ Weaver Version 1.7.0.M1 built on Friday Dec 16, 2011 at 16:56:09 GMT
[JspClassLoader@72d4e5] info register classloader weblogic.servlet.jsp.JspClassLoader@72d4e5
[JspClassLoader@72d4e5] info using configuration /C:/Oracle/Middleware/user_projects/domains/base_domain/META-INF/aop.xml
[JspClassLoader@72d4e5] info define aspect com.pierre.aop.MyTracing
[ChangeAwareClassLoader@f45732] info AspectJ Weaver Version 1.7.0.M1 built on Friday Dec 16, 2011 at 16:56:09 GMT
[ChangeAwareClassLoader@f45732] info register classloader weblogic.utils.classloaders.ChangeAwareClassLoader@f45732
[ChangeAwareClassLoader@f45732] info using configuration /C:/Oracle/Middleware/user_projects/domains/base_domain/META-INF/aop.xml
[ChangeAwareClassLoader@f45732] info define aspect com.pierre.aop.MyTracing
My JSP does:
AOPCUT aopcut = new AOPCUT();
aopcut.hello("pierre");
where the AOPCUT class is
package com.pierre.aop;
public class AOPCUT {
public void hello(String message) {
System.out.println("Hello " + message);
}
}
and the interceptor gets called....
Monday, December 26, 2011
How to remove (hide) the Wikipedia personal appeal?
I have donated money before to Wikipedia, but now I am sick and tired to see the faces for the fathers and mothers founders (at least they could use good looking babes for their campaign!)
On Firefox, install
https://addons.mozilla.org/en-US/firefox/addon/adblock-plus/
(needs restart)
To open the Adblock console:
chrome://adblockplus/content/ui/firstRun.xul
Then by browsing https://adblockplus.org/forum/viewtopic.php?f=2&t=6347 I find the right expression for the AdBlock filter:
/w/index.php?title=*:bannercontroller
It seems to be working for all Wikipedia regional languages.
Let me know when they have removed the ad, I will consider giving more money to thanks them for having stopped this torture.
I hope I am not doing anything illegal with this post!
Talking about Firefox plugins, I really recommend
https://addons.mozilla.org/en-US/firefox/addon/tree-style-tab/
to display vertical tabs,
essential if you have a laptop with low vertical resolution.
On Firefox, install
https://addons.mozilla.org/en-US/firefox/addon/adblock-plus/
(needs restart)
To open the Adblock console:
chrome://adblockplus/content/ui/firstRun.xul
Then by browsing https://adblockplus.org/forum/viewtopic.php?f=2&t=6347 I find the right expression for the AdBlock filter:
/w/index.php?title=*:bannercontroller
It seems to be working for all Wikipedia regional languages.
Let me know when they have removed the ad, I will consider giving more money to thanks them for having stopped this torture.
I hope I am not doing anything illegal with this post!
Talking about Firefox plugins, I really recommend
https://addons.mozilla.org/en-US/firefox/addon/tree-style-tab/
to display vertical tabs,
essential if you have a laptop with low vertical resolution.
Labels:
firefox
Saturday, December 24, 2011
WebLogic dies on startup: Unable to create a server socket for listening on channel "Default"
Unable to create a server socket for listening on channel "Default". The address 10.83.17.84 might be incorrect or another process is
using port 7001: java.net.BindException: Cannot assign requested address: JVM_Bind.
Of course there is no running process who listens on the 7001 port, I have done netstat -a to check...
It turned out that I have a dynamic IP on my laptop - with hostname pierrepc - and foolishly I have made an entry in my hosts file saying
10.83.17.84 pierrepc
Idiot me! The IP address is not static, so once I get assigned a different IP, WebLogic still tries to use the 10.83.17.84 IP to create a Socket...
Removing the (foolish) entry from hosts fixed the problem
using port 7001: java.net.BindException: Cannot assign requested address: JVM_Bind.
Of course there is no running process who listens on the 7001 port, I have done netstat -a to check...
It turned out that I have a dynamic IP on my laptop - with hostname pierrepc - and foolishly I have made an entry in my hosts file saying
10.83.17.84 pierrepc
Idiot me! The IP address is not static, so once I get assigned a different IP, WebLogic still tries to use the 10.83.17.84 IP to create a Socket...
Removing the (foolish) entry from hosts fixed the problem
Labels:
weblogic
Transport provider with id 'jca' is not registered
(guest post, the author is Chris)
We are using the ant tasks provided by Oracle to build a sbconfig.jar (task exportFromWorkspace).
Everything worked fine using the common osb artifacts. However for projects where we use JCA adapters we get the following errors when we do a build:
[java] com.bea.wli.config.component.ValidationException: Validation of BusinessService BLA : Diagnostics for BusinessService BLA 20-Dec-2011 17:04:54 [java] 20-Dec-2011 17:04:54 [java] ERROR: <0> Transport provider with id 'jca' is not registered. Failed
Some Googling taught me that is related to the 64 bit installation of OEPE, I can confirm this as I have built the same artifacts from the same projects on a 32 bits OEPE using the same scripts and they work.
Articles:
https://forums.oracle.com/forums/thread.jspa?messageID=4286722
https://kr.forums.oracle.com/forums/thread.jspa?threadID=1554310
We are using the ant tasks provided by Oracle to build a sbconfig.jar (task exportFromWorkspace).
Everything worked fine using the common osb artifacts. However for projects where we use JCA adapters we get the following errors when we do a build:
[java] com.bea.wli.config.component.ValidationException: Validation of BusinessService BLA : Diagnostics for BusinessService BLA 20-Dec-2011 17:04:54 [java] 20-Dec-2011 17:04:54 [java] ERROR: <0> Transport provider with id 'jca' is not registered. Failed
Some Googling taught me that is related to the 64 bit installation of OEPE, I can confirm this as I have built the same artifacts from the same projects on a 32 bits OEPE using the same scripts and they work.
Articles:
https://forums.oracle.com/forums/thread.jspa?messageID=4286722
https://kr.forums.oracle.com/forums/thread.jspa?threadID=1554310
WebLogic and Maven
Jeff West makes the best presentations around. He is spot on, no blablabla.
to install WebLogic (wow, this is cool!)
mvn wls:install
to create a domain
mvn wls:create-domain (wow, this is cool!)
to start the server:
mvn wls:start-server
to run a wlst script:
mvn wls:wlst
this is a reference to the preexisting maven plugin for weblogic
to install WebLogic (wow, this is cool!)
mvn wls:install
to create a domain
mvn wls:create-domain (wow, this is cool!)
to start the server:
mvn wls:start-server
to run a wlst script:
mvn wls:wlst
this is a reference to the preexisting maven plugin for weblogic
Labels:
maven,
mavensucks,
weblogic
WebLogic system properties
There are a number of System Properties (visible for instance with VisualVM) that influence WebLogic behaviour:
com.sun.xml.ws.api.BindingID.SOAP_12.canGenerateWsdl=true
com.sun.xml.ws.api.streaming.XMLStreamReaderFactory.woodstox=true
com.sun.xml.ws.api.streaming.XMLStreamWriterFactory.woodstox=true
com.sun.xml.ws.fault.SOAPFaultBuilder.disableCaptureStackTrace=true
common.components.home=/home/orauser/bea1035/oracle_common
domain.home=/home/orauser/bea1035/user_projects/domains/osb_domain
file.encoding=UTF-8
file.encoding.pkg=sun.io
file.separator=/
igf.arisidbeans.carmlloc=/home/orauser/bea1035/user_projects/domains/osb_domain/config/fmwconfig/carml
igf.arisidstack.home=/home/orauser/bea1035/user_projects/domains/osb_domain/config/fmwconfig/arisidprovider
java.awt.graphicsenv=sun.awt.X11GraphicsEnvironment
java.awt.printerjob=sun.print.PSPrinterJob
java.class.path=/home/orauser/bea1035/oracle_common/modules/oracle.jdbc_11.1.1/ojdbc6dms.jar::/home/orauser/bea1035/Oracle_OSB1/lib/osb-server-modules-ref.jar:/home/orauser/bea1035/patch_wls1035/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/home/orauser/bea1035/patch_oepe1050/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/home/orauser/bea1035/patch_ocp360/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/lib/tools.jar:/home/orauser/bea1035/wlserver_10.3/server/lib/weblogic_sp.jar:/home/orauser/bea1035/wlserver_10.3/server/lib/weblogic.jar:/home/orauser/bea1035/modules/features/weblogic.server.modules_10.3.5.0.jar:/home/orauser/bea1035/wlserver_10.3/server/lib/webservices.jar:/home/orauser/bea1035/modules/org.apache.ant_1.7.1/lib/ant-all.jar:/home/orauser/bea1035/modules/net.sf.antcontrib_1.1.0.0_1-0b2/lib/ant-contrib.jar:/home/orauser/bea1035/Oracle_OSB1/soa/modules/oracle.soa.common.adapters_11.1.1/oracle.soa.common.adapters.jar:/home/orauser/bea1035/oracle_common/modules/oracle.jrf_11.1.1/jrf.jar:/home/orauser/bea1035/Oracle_OSB1/lib/version.jar:/home/orauser/bea1035/Oracle_OSB1/lib/alsb.jar:/home/orauser/bea1035/Oracle_OSB1/3rdparty/lib/j2ssh-ant.jar:/home/orauser/bea1035/Oracle_OSB1/3rdparty/lib/j2ssh-common.jar:/home/orauser/bea1035/Oracle_OSB1/3rdparty/lib/j2ssh-core.jar:/home/orauser/bea1035/Oracle_OSB1/3rdparty/lib/j2ssh-dameon.jar:/home/orauser/bea1035/Oracle_OSB1/3rdparty/classes:/home/orauser/bea1035/Oracle_OSB1/lib/external/log4j_1.2.8.jar:/home/orauser/bea1035/user_projects/domains/osb_domain/config/osb::/home/orauser/bea1035/wlserver_10.3/common/derby/lib/derbynet.jar:/home/orauser/bea1035/wlserver_10.3/common/derby/lib/derbyclient.jar:/home/orauser/bea1035/wlserver_10.3/server/lib/xqrl.jar:/home/orauser/bea1035/patch_wls1035/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/home/orauser/bea1035/patch_oepe1050/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/home/orauser/bea1035/patch_ocp360/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/lib/tools.jar:/home/orauser/bea1035/wlserver_10.3/server/lib/weblogic_sp.jar:/home/orauser/bea1035/wlserver_10.3/server/lib/weblogic.jar:/home/orauser/bea1035/modules/features/weblogic.server.modules_10.3.5.0.jar:/home/orauser/bea1035/wlserver_10.3/server/lib/webservices.jar:/home/orauser/bea1035/modules/org.apache.ant_1.7.1/lib/ant-all.jar:/home/orauser/bea1035/modules/net.sf.antcontrib_1.1.0.0_1-0b2/lib/ant-contrib.jar::/home/orauser/bea1035
java.class.version=50.0
java.endorsed.dirs=/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/lib/endorsed
java.ext.dirs=/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/lib/ext
java.home=/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre
java.io.tmpdir=/tmp
java.library.path=/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/lib/i386/jrockit:/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/lib/i386:/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/../lib/i386:/home/orauser/bea1035/patch_wls1035/profiles/default/native:/home/orauser/bea1035/patch_oepe1050/profiles/default/native:/home/orauser/bea1035/patch_ocp360/profiles/default/native:/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/lib/i386/jrockit:/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/lib/i386:/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/../lib/i386:/home/orauser/bea1035/patch_wls1035/profiles/default/native:/home/orauser/bea1035/patch_oepe1050/profiles/default/native:/home/orauser/bea1035/patch_ocp360/profiles/default/native:/home/orauser/bea1035/wlserver_10.3/server/native/linux/i686:/home/orauser/bea1035/wlserver_10.3/server/native/linux/i686/oci920_8:/home/orauser/bea1035/wlserver_10.3/server/native/linux/i686:/home/orauser/bea1035/wlserver_10.3/server/native/linux/i686/oci920_8
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
java.naming.factory.url.pkgs=weblogic.jndi.factories:weblogic.corba.j2ee.naming.url:weblogic.jndi.factories:weblogic.corba.j2ee.naming.url
java.protocol.handler.pkgs=oracle.mds.net.protocol|weblogic.net|weblogic.utils|weblogic.utils|weblogic.utils|com.bea.wli.sb.resources.url
java.rmi.server.randomIDs=true
java.runtime.name=Java(TM) SE Runtime Environment
java.runtime.version=1.6.0_24-b07
java.security.policy=/home/orauser/bea1035/wlserver_10.3/server/lib/weblogic.policy
java.specification.name=Java Platform API Specification
java.specification.vendor=Sun Microsystems Inc.
java.specification.version=1.6
java.vendor=Oracle Corporation
java.vendor.url=http://www.oracle.com/
java.vendor.url.bug=http://download.oracle.com/docs/cd/E15289_01/go2troubleshooting.html
java.version=1.6.0_24
java.vm.info=compiled mode
java.vm.name=Oracle JRockit(R)
java.vm.specification.name=Java Virtual Machine Specification
java.vm.specification.vendor=Sun Microsystems Inc.
java.vm.specification.version=1.0
java.vm.vendor=Oracle Corporation
java.vm.vendor.url=http://www.oracle.com/
java.vm.vendor.url.bug=http://download.oracle.com/docs/cd/E15289_01/go2troubleshooting.html
java.vm.version=R28.1.3-11-141760-1.6.0_24-20110301-1430-linux-ia32
javax.management.builder.initial=weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilder
javax.rmi.CORBA.PortableRemoteObjectClass=weblogic.iiop.PortableRemoteObjectDelegateImpl
javax.rmi.CORBA.UtilClass=weblogic.iiop.UtilDelegateImpl
javax.xml.rpc.ServiceFactory=weblogic.webservice.core.rpc.ServiceFactoryImpl
javax.xml.soap.MessageFactory=weblogic.webservice.core.soap.MessageFactoryImpl
jrf.version=11.1.1
jrockit.optfile=/home/orauser/bea1035/oracle_common/modules/oracle.jrf_11.1.1/jrocket_optfile.txt
kernel.download.enabled=false
line.separator=\n
oracle.core.ojdl.logging.applicationcontextprovider=oracle.core.ojdl.logging.WlsApplicationContextImpl
oracle.core.ojdl.logging.componentId=ms1
oracle.core.ojdl.logging.usercontextprovider=oracle.core.ojdl.logging.WlsUserContextImpl
oracle.deployed.app.dir=/home/orauser/bea1035/user_projects/domains/osb_domain/servers/ms1/tmp/_WL_user
oracle.deployed.app.ext=/-
oracle.domain.config.dir=/home/orauser/bea1035/user_projects/domains/osb_domain/config/fmwconfig
oracle.security.jps.config=/home/orauser/bea1035/user_projects/domains/osb_domain/config/fmwconfig/jps-config.xml
oracle.server.config.dir=/home/orauser/bea1035/user_projects/domains/osb_domain/config/fmwconfig/servers/ms1
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
org.omg.CORBA.ORBClass=weblogic.corba.orb.ORB
org.omg.CORBA.ORBSingletonClass=weblogic.corba.orb.ORB
org.xml.sax.driver=weblogic.xml.jaxp.RegistryXMLReader
org.xml.sax.parser=weblogic.xml.jaxp.RegistryParser
os.arch=i386
os.name=Linux
os.version=3.0.0-12-generic
path.separator=:
platform.home=/home/orauser/bea1035/wlserver_10.3
sun.arch.data.model=32
sun.boot.class.path=/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/lib/resources.jar:/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/lib/rt.jar:/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/lib/sunrsasign.jar:/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/lib/jsse.jar:/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/lib/jce.jar:/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/lib/charsets.jar:/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/classes
sun.boot.library.path=/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/lib/i386
sun.cpu.endian=little
sun.cpu.isalist=
sun.desktop=gnome
sun.io.unicode.encoding=UnicodeLittle
sun.java.launcher=SUN_STANDARD
sun.jnu.encoding=UTF-8
sun.management.compiler=Oracle JRockit(R) Optimizing Compiler
sun.os.patch.level=unknown
user.country=GB
user.dir=/home/orauser/bea1035/user_projects/domains/osb_domain
user.home=/home/orauser
user.language=en
user.name=orauser
user.timezone=Europe/London
vde.home=/home/orauser/bea1035/user_projects/domains/osb_domain/servers/ms1/data/ldap
weblogic.Name=ms1
weblogic.ProductionModeEnabled=true
weblogic.ReverseDNSAllowed=false
weblogic.alternateTypesDirectory=/home/orauser/bea1035/oracle_common/modules/oracle.ossoiap_11.1.1,/home/orauser/bea1035/oracle_common/modules/oracle.oamprovider_11.1.1
weblogic.classloader.preprocessor=weblogic.diagnostics.instrumentation.DiagnosticClassPreProcessor
weblogic.ext.dirs=/home/orauser/bea1035/patch_wls1035/profiles/default/sysext_manifest_classpath:/home/orauser/bea1035/patch_oepe1050/profiles/default/sysext_manifest_classpath:/home/orauser/bea1035/patch_ocp360/profiles/default/sysext_manifest_classpath
weblogic.home=/home/orauser/bea1035/wlserver_10.3/server
weblogic.jdbc.remoteEnabled=false
weblogic.management.discover=false
weblogic.management.server=http://192.168.230.130:7001
weblogic.nodemanager.ServiceEnabled=true
weblogic.security.SSL.ignoreHostnameVerification=false
weblogic.security.TrustKeyStore=DemoTrust
weblogic.system.BootIdentityFile=/home/orauser/bea1035/user_projects/domains/osb_domain/servers/ms1/data/nodemanager/boot.properties
wls.home=/home/orauser/bea1035/wlserver_10.3/server
wlw.iterativeDev=false
wlw.logErrorsToConsole=false
wlw.testConsole=false
com.sun.xml.ws.api.BindingID.SOAP_12.canGenerateWsdl=true
com.sun.xml.ws.api.streaming.XMLStreamReaderFactory.woodstox=true
com.sun.xml.ws.api.streaming.XMLStreamWriterFactory.woodstox=true
com.sun.xml.ws.fault.SOAPFaultBuilder.disableCaptureStackTrace=true
common.components.home=/home/orauser/bea1035/oracle_common
domain.home=/home/orauser/bea1035/user_projects/domains/osb_domain
file.encoding=UTF-8
file.encoding.pkg=sun.io
file.separator=/
igf.arisidbeans.carmlloc=/home/orauser/bea1035/user_projects/domains/osb_domain/config/fmwconfig/carml
igf.arisidstack.home=/home/orauser/bea1035/user_projects/domains/osb_domain/config/fmwconfig/arisidprovider
java.awt.graphicsenv=sun.awt.X11GraphicsEnvironment
java.awt.printerjob=sun.print.PSPrinterJob
java.class.path=/home/orauser/bea1035/oracle_common/modules/oracle.jdbc_11.1.1/ojdbc6dms.jar::/home/orauser/bea1035/Oracle_OSB1/lib/osb-server-modules-ref.jar:/home/orauser/bea1035/patch_wls1035/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/home/orauser/bea1035/patch_oepe1050/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/home/orauser/bea1035/patch_ocp360/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/lib/tools.jar:/home/orauser/bea1035/wlserver_10.3/server/lib/weblogic_sp.jar:/home/orauser/bea1035/wlserver_10.3/server/lib/weblogic.jar:/home/orauser/bea1035/modules/features/weblogic.server.modules_10.3.5.0.jar:/home/orauser/bea1035/wlserver_10.3/server/lib/webservices.jar:/home/orauser/bea1035/modules/org.apache.ant_1.7.1/lib/ant-all.jar:/home/orauser/bea1035/modules/net.sf.antcontrib_1.1.0.0_1-0b2/lib/ant-contrib.jar:/home/orauser/bea1035/Oracle_OSB1/soa/modules/oracle.soa.common.adapters_11.1.1/oracle.soa.common.adapters.jar:/home/orauser/bea1035/oracle_common/modules/oracle.jrf_11.1.1/jrf.jar:/home/orauser/bea1035/Oracle_OSB1/lib/version.jar:/home/orauser/bea1035/Oracle_OSB1/lib/alsb.jar:/home/orauser/bea1035/Oracle_OSB1/3rdparty/lib/j2ssh-ant.jar:/home/orauser/bea1035/Oracle_OSB1/3rdparty/lib/j2ssh-common.jar:/home/orauser/bea1035/Oracle_OSB1/3rdparty/lib/j2ssh-core.jar:/home/orauser/bea1035/Oracle_OSB1/3rdparty/lib/j2ssh-dameon.jar:/home/orauser/bea1035/Oracle_OSB1/3rdparty/classes:/home/orauser/bea1035/Oracle_OSB1/lib/external/log4j_1.2.8.jar:/home/orauser/bea1035/user_projects/domains/osb_domain/config/osb::/home/orauser/bea1035/wlserver_10.3/common/derby/lib/derbynet.jar:/home/orauser/bea1035/wlserver_10.3/common/derby/lib/derbyclient.jar:/home/orauser/bea1035/wlserver_10.3/server/lib/xqrl.jar:/home/orauser/bea1035/patch_wls1035/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/home/orauser/bea1035/patch_oepe1050/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/home/orauser/bea1035/patch_ocp360/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/lib/tools.jar:/home/orauser/bea1035/wlserver_10.3/server/lib/weblogic_sp.jar:/home/orauser/bea1035/wlserver_10.3/server/lib/weblogic.jar:/home/orauser/bea1035/modules/features/weblogic.server.modules_10.3.5.0.jar:/home/orauser/bea1035/wlserver_10.3/server/lib/webservices.jar:/home/orauser/bea1035/modules/org.apache.ant_1.7.1/lib/ant-all.jar:/home/orauser/bea1035/modules/net.sf.antcontrib_1.1.0.0_1-0b2/lib/ant-contrib.jar::/home/orauser/bea1035
java.class.version=50.0
java.endorsed.dirs=/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/lib/endorsed
java.ext.dirs=/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/lib/ext
java.home=/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre
java.io.tmpdir=/tmp
java.library.path=/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/lib/i386/jrockit:/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/lib/i386:/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/../lib/i386:/home/orauser/bea1035/patch_wls1035/profiles/default/native:/home/orauser/bea1035/patch_oepe1050/profiles/default/native:/home/orauser/bea1035/patch_ocp360/profiles/default/native:/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/lib/i386/jrockit:/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/lib/i386:/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/../lib/i386:/home/orauser/bea1035/patch_wls1035/profiles/default/native:/home/orauser/bea1035/patch_oepe1050/profiles/default/native:/home/orauser/bea1035/patch_ocp360/profiles/default/native:/home/orauser/bea1035/wlserver_10.3/server/native/linux/i686:/home/orauser/bea1035/wlserver_10.3/server/native/linux/i686/oci920_8:/home/orauser/bea1035/wlserver_10.3/server/native/linux/i686:/home/orauser/bea1035/wlserver_10.3/server/native/linux/i686/oci920_8
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
java.naming.factory.url.pkgs=weblogic.jndi.factories:weblogic.corba.j2ee.naming.url:weblogic.jndi.factories:weblogic.corba.j2ee.naming.url
java.protocol.handler.pkgs=oracle.mds.net.protocol|weblogic.net|weblogic.utils|weblogic.utils|weblogic.utils|com.bea.wli.sb.resources.url
java.rmi.server.randomIDs=true
java.runtime.name=Java(TM) SE Runtime Environment
java.runtime.version=1.6.0_24-b07
java.security.policy=/home/orauser/bea1035/wlserver_10.3/server/lib/weblogic.policy
java.specification.name=Java Platform API Specification
java.specification.vendor=Sun Microsystems Inc.
java.specification.version=1.6
java.vendor=Oracle Corporation
java.vendor.url=http://www.oracle.com/
java.vendor.url.bug=http://download.oracle.com/docs/cd/E15289_01/go2troubleshooting.html
java.version=1.6.0_24
java.vm.info=compiled mode
java.vm.name=Oracle JRockit(R)
java.vm.specification.name=Java Virtual Machine Specification
java.vm.specification.vendor=Sun Microsystems Inc.
java.vm.specification.version=1.0
java.vm.vendor=Oracle Corporation
java.vm.vendor.url=http://www.oracle.com/
java.vm.vendor.url.bug=http://download.oracle.com/docs/cd/E15289_01/go2troubleshooting.html
java.vm.version=R28.1.3-11-141760-1.6.0_24-20110301-1430-linux-ia32
javax.management.builder.initial=weblogic.management.jmx.mbeanserver.WLSMBeanServerBuilder
javax.rmi.CORBA.PortableRemoteObjectClass=weblogic.iiop.PortableRemoteObjectDelegateImpl
javax.rmi.CORBA.UtilClass=weblogic.iiop.UtilDelegateImpl
javax.xml.rpc.ServiceFactory=weblogic.webservice.core.rpc.ServiceFactoryImpl
javax.xml.soap.MessageFactory=weblogic.webservice.core.soap.MessageFactoryImpl
jrf.version=11.1.1
jrockit.optfile=/home/orauser/bea1035/oracle_common/modules/oracle.jrf_11.1.1/jrocket_optfile.txt
kernel.download.enabled=false
line.separator=\n
oracle.core.ojdl.logging.applicationcontextprovider=oracle.core.ojdl.logging.WlsApplicationContextImpl
oracle.core.ojdl.logging.componentId=ms1
oracle.core.ojdl.logging.usercontextprovider=oracle.core.ojdl.logging.WlsUserContextImpl
oracle.deployed.app.dir=/home/orauser/bea1035/user_projects/domains/osb_domain/servers/ms1/tmp/_WL_user
oracle.deployed.app.ext=/-
oracle.domain.config.dir=/home/orauser/bea1035/user_projects/domains/osb_domain/config/fmwconfig
oracle.security.jps.config=/home/orauser/bea1035/user_projects/domains/osb_domain/config/fmwconfig/jps-config.xml
oracle.server.config.dir=/home/orauser/bea1035/user_projects/domains/osb_domain/config/fmwconfig/servers/ms1
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
org.omg.CORBA.ORBClass=weblogic.corba.orb.ORB
org.omg.CORBA.ORBSingletonClass=weblogic.corba.orb.ORB
org.xml.sax.driver=weblogic.xml.jaxp.RegistryXMLReader
org.xml.sax.parser=weblogic.xml.jaxp.RegistryParser
os.arch=i386
os.name=Linux
os.version=3.0.0-12-generic
path.separator=:
platform.home=/home/orauser/bea1035/wlserver_10.3
sun.arch.data.model=32
sun.boot.class.path=/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/lib/resources.jar:/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/lib/rt.jar:/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/lib/sunrsasign.jar:/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/lib/jsse.jar:/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/lib/jce.jar:/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/lib/charsets.jar:/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/classes
sun.boot.library.path=/home/orauser/bea1035/jrockit_160_24_D1.1.2-4/jre/lib/i386
sun.cpu.endian=little
sun.cpu.isalist=
sun.desktop=gnome
sun.io.unicode.encoding=UnicodeLittle
sun.java.launcher=SUN_STANDARD
sun.jnu.encoding=UTF-8
sun.management.compiler=Oracle JRockit(R) Optimizing Compiler
sun.os.patch.level=unknown
user.country=GB
user.dir=/home/orauser/bea1035/user_projects/domains/osb_domain
user.home=/home/orauser
user.language=en
user.name=orauser
user.timezone=Europe/London
vde.home=/home/orauser/bea1035/user_projects/domains/osb_domain/servers/ms1/data/ldap
weblogic.Name=ms1
weblogic.ProductionModeEnabled=true
weblogic.ReverseDNSAllowed=false
weblogic.alternateTypesDirectory=/home/orauser/bea1035/oracle_common/modules/oracle.ossoiap_11.1.1,/home/orauser/bea1035/oracle_common/modules/oracle.oamprovider_11.1.1
weblogic.classloader.preprocessor=weblogic.diagnostics.instrumentation.DiagnosticClassPreProcessor
weblogic.ext.dirs=/home/orauser/bea1035/patch_wls1035/profiles/default/sysext_manifest_classpath:/home/orauser/bea1035/patch_oepe1050/profiles/default/sysext_manifest_classpath:/home/orauser/bea1035/patch_ocp360/profiles/default/sysext_manifest_classpath
weblogic.home=/home/orauser/bea1035/wlserver_10.3/server
weblogic.jdbc.remoteEnabled=false
weblogic.management.discover=false
weblogic.management.server=http://192.168.230.130:7001
weblogic.nodemanager.ServiceEnabled=true
weblogic.security.SSL.ignoreHostnameVerification=false
weblogic.security.TrustKeyStore=DemoTrust
weblogic.system.BootIdentityFile=/home/orauser/bea1035/user_projects/domains/osb_domain/servers/ms1/data/nodemanager/boot.properties
wls.home=/home/orauser/bea1035/wlserver_10.3/server
wlw.iterativeDev=false
wlw.logErrorsToConsole=false
wlw.testConsole=false
Labels:
weblogic
Thursday, December 22, 2011
BPEL and OSB Monitoring with Enterprise Manager Grid Control
The books shows some use cases of monitoring and provisioning OSB projects with Enterprise Manager Grid Control
Here the official Oracle documentation:
http://docs.oracle.com/cd/E11857_01/install.111/e17558/disc_mon_osb.htm
Labels:
books,
enterpriseManager,
gridcontrol
A SOA Expert is...
An expert is a person who has made all the mistakes that can be made in a very narrow field.
Niels Bohr
Danish physicist (1885 - 1962)
Niels Bohr
Danish physicist (1885 - 1962)
Monday, December 19, 2011
XQuery: how to chain (concat) 2 elements
curly braces will do the job:
let $a := <a>bla</a>
let $b := <b>blu</b>
return { $a, $b }
will return
<a>bla</a>
<b>blu</b>
let $a := <a>bla</a>
let $b := <b>blu</b>
return { $a, $b }
will return
<a>bla</a>
<b>blu</b>
Labels:
XQuery
Custom XPath libraries
http://code.google.com/p/soalabs/
We thank again Sandeep Phukan (we wrote about him here) for his excellent library of Custom XPath functions.
Here his wiki.
We thank again Sandeep Phukan (we wrote about him here) for his excellent library of Custom XPath functions.
Here his wiki.
Labels:
customXpath
Sunday, December 18, 2011
Oracle Enterprise Manager 10g Grid Control Handbook
reading right now.... quite interesting.... from one of the main contributors to the Grid Control product: Werner De Gruyter, Matthew Hart, Daniel Nguyen
Labels:
books
Grid Control: ORACLE_MIDDLEWARE_HOME_LOCATION subdirectory already exists
I have tried everything to install Grid Control.
I have also tried to "show empty homes" and remove them: it hangs forever and in the log C:\bea11\oracle_common\cfgtoollogs\cfgfw\CfmLogger_2011-12-18_04-17-32-PM.log it shows:
WARNING: Validation of XML schema is disabled because AggregateDescriptions.xsd could not be found
INFO: Creating new CFM connection
WARNING: A CfwClient was destroyed without a proper call to disconnect!
I will start again tomorrow.... but.... what a battle to install Grid Control...
I have also tried to "show empty homes" and remove them: it hangs forever and in the log C:\bea11\oracle_common\cfgtoollogs\cfgfw\CfmLogger_2011-12-18_04-17-32-PM.log it shows:
WARNING: Validation of XML schema is disabled because AggregateDescriptions.xsd could not be found
INFO: Creating new CFM connection
WARNING: A CfwClient was destroyed without a proper call to disconnect!
I will start again tomorrow.... but.... what a battle to install Grid Control...
Labels:
gridcontrol
Latinorum
This is an evolving post... it's a collection of posh-"sounds-so-difficult" names for old, well known stuff.
The more difficult we talk, the more people will worship us as gurus and we can avoid any actual physical work and we can avoid having to ACTUALLY solve problems.
This was a common practice in the Middle Ages, professionals (doctors, lawyers, priests) would put enormous energies into learning Latin, so that nobody could understand what they were saying.
Synthetic transactions
http://www.nextslm.org/fishman.html#synthetic
Synthetic transactions are a way to check the availability of an application across a network. By definition, a synthetic transaction constitutes an automated, self-contained set of user operations that can be executed against a service in the same way a real consumer of the service operates an application. For example, on the Internet, a synthetic transaction includes a script that goes a stock trading site, tries to look up a stock's price or portfolio valuation, and reports if the series of operations completed successfully. In other words, any fixed set of user operations that can be automated reliably may be defined as a synthetic transactions.
"Synthetic" sounds like Alien technology, something that only Extraterrestrial intelligences can master.... cool!
Hydrate
http://stackoverflow.com/questions/4929243/clarifying-terminology-hydrating-an-entity-fetching-properties-from-the-db
Hydrate is being used (often incorrectly) instead of the well known "populate" or "persist"... again, its association to a Chemistry term evokes a world of knowledge available only to few specialists...
Agile
I have been doing Agile for the first 10 years of my career, when I was coding for food... we were working on VERY tight budgets and even tighter deadlines.... we used to call it "get your fat stinky ass off that chair, work harder, when stuck raise a flag and get things done". It used to work like wonders, and we were delivering at least 10 times faster
than any corporate project I have ever seen.
Stakeholder
As defined here, "stakeholder is anyone who will make use of, develop, or have an impact on any aspect of your project". It sounds sooooo much cooler than "people concerned" !
Semantics
Some people say "the language doesn't have the SEMANTICS to do this".
Here an very clear definition of SEMANTICS:
"Semantics is the study of the meaning of linguistic expressions."
Probably if they used "the capability" or "the API" they would be more.... semantically correct!
Taxonomy
Taxonomy is another of those wonderful words to impress your audience. It means nothing more nothing less than Classification, but it will allow you to impersonate the Darwin or the Linnaeus of the block, leaving around you an aura of scientificity and holiness.
Patterns
Let's give the word credits: Patterns is an excellent sound bite, with the voiceless bilabial plosive "P" at the beginning sending your opponent to the ground.
Whenever in a discussion someone starts swaying the "Pattern" story around like Samson the ass jawbone
- maybe because he is the only person who has actually learned by heart the entire index of the GoF book -
I wonder "is this man trying to COMMUNICATE, or to INTIMIDATE?".
The more difficult we talk, the more people will worship us as gurus and we can avoid any actual physical work and we can avoid having to ACTUALLY solve problems.
This was a common practice in the Middle Ages, professionals (doctors, lawyers, priests) would put enormous energies into learning Latin, so that nobody could understand what they were saying.
Synthetic transactions
http://www.nextslm.org/fishman.html#synthetic
Synthetic transactions are a way to check the availability of an application across a network. By definition, a synthetic transaction constitutes an automated, self-contained set of user operations that can be executed against a service in the same way a real consumer of the service operates an application. For example, on the Internet, a synthetic transaction includes a script that goes a stock trading site, tries to look up a stock's price or portfolio valuation, and reports if the series of operations completed successfully. In other words, any fixed set of user operations that can be automated reliably may be defined as a synthetic transactions.
"Synthetic" sounds like Alien technology, something that only Extraterrestrial intelligences can master.... cool!
Hydrate
http://stackoverflow.com/questions/4929243/clarifying-terminology-hydrating-an-entity-fetching-properties-from-the-db
Hydrate is being used (often incorrectly) instead of the well known "populate" or "persist"... again, its association to a Chemistry term evokes a world of knowledge available only to few specialists...
Agile
I have been doing Agile for the first 10 years of my career, when I was coding for food... we were working on VERY tight budgets and even tighter deadlines.... we used to call it "get your fat stinky ass off that chair, work harder, when stuck raise a flag and get things done". It used to work like wonders, and we were delivering at least 10 times faster
than any corporate project I have ever seen.
Stakeholder
As defined here, "stakeholder is anyone who will make use of, develop, or have an impact on any aspect of your project". It sounds sooooo much cooler than "people concerned" !
Semantics
Some people say "the language doesn't have the SEMANTICS to do this".
Here an very clear definition of SEMANTICS:
"Semantics is the study of the meaning of linguistic expressions."
Probably if they used "the capability" or "the API" they would be more.... semantically correct!
Taxonomy
Taxonomy is another of those wonderful words to impress your audience. It means nothing more nothing less than Classification, but it will allow you to impersonate the Darwin or the Linnaeus of the block, leaving around you an aura of scientificity and holiness.
Patterns
Let's give the word credits: Patterns is an excellent sound bite, with the voiceless bilabial plosive "P" at the beginning sending your opponent to the ground.
Whenever in a discussion someone starts swaying the "Pattern" story around like Samson the ass jawbone
- maybe because he is the only person who has actually learned by heart the entire index of the GoF book -
I wonder "is this man trying to COMMUNICATE, or to INTIMIDATE?".
Labels:
latinorum
Saturday, December 17, 2011
Beware of free screen recorder...
Googling for "free screen recorder" I have stumbled upon
http://freescreenrecorder.net/
BEWARE: It tries to install Babylon on your machine (I simply hate Babylon, for having been their customer and having been harassed multiple times by their policy to revoke your license if you install it on a different PC.... I change computer every 3 months, so you can imagine....)...
and it also fails to download the rest of the program.
Here http://www.webresourcesdepot.com/10-free-screen-recording-softwares-for-creating-attractive-screencasts/ you get a large list of "certified" free or paying screen recording software... never install anything which has not been reviewed by peers.
I used to use CamStudio but I really miss the ability to zoom.
http://freescreenrecorder.net/
BEWARE: It tries to install Babylon on your machine (I simply hate Babylon, for having been their customer and having been harassed multiple times by their policy to revoke your license if you install it on a different PC.... I change computer every 3 months, so you can imagine....)...
and it also fails to download the rest of the program.
Here http://www.webresourcesdepot.com/10-free-screen-recording-softwares-for-creating-attractive-screencasts/ you get a large list of "certified" free or paying screen recording software... never install anything which has not been reviewed by peers.
I used to use CamStudio but I really miss the ability to zoom.
Labels:
screenrecorder
Friday, December 16, 2011
JPA using Coherence as Level 2 Cache
quite cool this video on TopLink grid with COH in WL Cluster.
In a nutshell:
Grid Entity can be tricky, because updates are asynchronous and they could fail, leaving the cache out of sync with the DB.
Recommended model:
Out-Of-Process, COH is in a different JVM as the Application Server.
In-Process: everything in the same JVM. Good only for development.
Mixed model (some data in near-cache, some in far-cache) can be useful in some applications.
Second part:
it's quite cool, it shows how to create a COH cluster and server, how to configure a WL server for COH. It gives an example of a Grid Entity mode to offload DB writes.
Here the example
http://blogs.oracle.com/jeffwest/entry/introducing_the_oracle_parcel_serviceexamplereference_application
and the code is on SVN at https://svn.java.net/svn/oracle-pacel-svc~ops-r3-ee6
COOL!
In a nutshell:
- Coherence can cache DB data in a cluster-wide manner
- Grid Cache mode uses Coherence to cache (read-through) objects by ID
- Grid Read mode turns JPQL queries into COH Grid queries
- Grid Entity mode supports read and writes directly into the Cache
Grid Entity can be tricky, because updates are asynchronous and they could fail, leaving the cache out of sync with the DB.
Recommended model:
Out-Of-Process, COH is in a different JVM as the Application Server.
In-Process: everything in the same JVM. Good only for development.
Mixed model (some data in near-cache, some in far-cache) can be useful in some applications.
Second part:
it's quite cool, it shows how to create a COH cluster and server, how to configure a WL server for COH. It gives an example of a Grid Entity mode to offload DB writes.
Here the example
http://blogs.oracle.com/jeffwest/entry/introducing_the_oracle_parcel_serviceexamplereference_application
and the code is on SVN at https://svn.java.net/svn/oracle-pacel-svc~ops-r3-ee6
COOL!
Labels:
coherence
Book: Enterprise Manager Grid Control 11g
Oracle Enterprise Manager Grid Control 11g R1: Business Service Management
https://www.packtpub.com/oracle-enterprise-manager-grid-control-11g-r1/book
Chapter 1.... just skip it, it's blablabla
Chapter 2: OEB DB Control, AS Control, FMW Control, Grid Control. Management Agent.
Monitoring of Targets and Performances.
at Chapter 3 I gave up... .on the whole I find that the official Oracle documentation uses a simpler and more concise language.
From a technical book I expect some real customer stories, some use cases, a more colloquial and entertaining language.
https://www.packtpub.com/oracle-enterprise-manager-grid-control-11g-r1/book
Chapter 1.... just skip it, it's blablabla
Chapter 2: OEB DB Control, AS Control, FMW Control, Grid Control. Management Agent.
Monitoring of Targets and Performances.
at Chapter 3 I gave up... .on the whole I find that the official Oracle documentation uses a simpler and more concise language.
From a technical book I expect some real customer stories, some use cases, a more colloquial and entertaining language.
Labels:
books
oracle virtual box soa suite : memory for crash kernel (0x0 to 0x0) not within permissible range
If your Oracle Linux VirtualBox doesn't start, and shows a
"memory for crash kernel (0x0 to 0x0) not within permissible range" error (in reality it's only a warning, and presumably not the cause for the crash),
you can either cry, or (see http://blogs.oracle.com/reynolds/entry/using_the_soa-bpm_virtualbox_a ) Enable IO APIC handler.
"memory for crash kernel (0x0 to 0x0) not within permissible range" error (in reality it's only a warning, and presumably not the cause for the crash),
you can either cry, or (see http://blogs.oracle.com/reynolds/entry/using_the_soa-bpm_virtualbox_a ) Enable IO APIC handler.
Labels:
vbox
Corporal Pierre got promoted today to Sergeant Major on OTN Forum
still a VERY long way from GURU:
I wonder what you become after 1000000 points.... KING of Oraclavia ?
Labels:
OTN
Thursday, December 15, 2011
OSB acknowledging JMS messages part II
see here my original post
http://docs.oracle.com/cd/E17802_01/products/products/jms/javadoc-102a/javax/jms/Session.html
3 modes of JMS message acknowledge:
AUTO_ACKNOWLEDGE
public static final int AUTO_ACKNOWLEDGE
With this acknowledgement mode, the session automatically acknowledges a client's receipt of a message when it has either successfully returned from a call to receive or the message listener it has called to process the message successfully returns.
CLIENT_ACKNOWLEDGE
public static final int CLIENT_ACKNOWLEDGE
With this acknowledgement mode, the client acknowledges a message by calling a message's acknowledge method. Acknowledging a message acknowledges all messages that the Session has consumed.
When client acknowledgment mode is used, a client may build up a large number of unacknowledged messages while attempting to process them. A JMS provider should provide administrators with a way to limit client over-run so that clients are not driven to resource exhaustion and ensuing failure when some resource they are using is temporarily blocked.
DUPS_OK_ACKNOWLEDGE
public static final int DUPS_OK_ACKNOWLEDGE
This acknowledgement mode instructs the session to lazily acknowledge the delivery of messages. This is likely to result in the delivery of some duplicate messages if JMS fails, it should only be used by consumers that are tolerant of duplicate messages. Its benefit is the reduction of session overhead achieved by minimizing the work the session does to prevent duplicates.
My understanding is that AUTO_ACKNOWLEDGE means "ACKNOWLEDGE if the transaction was successful" (default behaviour, unless you "raise error" in OSB).
http://docs.oracle.com/cd/E17802_01/products/products/jms/javadoc-102a/javax/jms/Session.html
3 modes of JMS message acknowledge:
AUTO_ACKNOWLEDGE
public static final int AUTO_ACKNOWLEDGE
With this acknowledgement mode, the session automatically acknowledges a client's receipt of a message when it has either successfully returned from a call to receive or the message listener it has called to process the message successfully returns.
CLIENT_ACKNOWLEDGE
public static final int CLIENT_ACKNOWLEDGE
With this acknowledgement mode, the client acknowledges a message by calling a message's acknowledge method. Acknowledging a message acknowledges all messages that the Session has consumed.
When client acknowledgment mode is used, a client may build up a large number of unacknowledged messages while attempting to process them. A JMS provider should provide administrators with a way to limit client over-run so that clients are not driven to resource exhaustion and ensuing failure when some resource they are using is temporarily blocked.
DUPS_OK_ACKNOWLEDGE
public static final int DUPS_OK_ACKNOWLEDGE
This acknowledgement mode instructs the session to lazily acknowledge the delivery of messages. This is likely to result in the delivery of some duplicate messages if JMS fails, it should only be used by consumers that are tolerant of duplicate messages. Its benefit is the reduction of session overhead achieved by minimizing the work the session does to prevent duplicates.
My understanding is that AUTO_ACKNOWLEDGE means "ACKNOWLEDGE if the transaction was successful" (default behaviour, unless you "raise error" in OSB).
Labels:
acknowledgment
Wednesday, December 14, 2011
OSB JMS proxy and "reply with success/reply with failure"
I create a PVQueue, override redelivery count = 3 and redelivery delay = 10000
I consume the messages with a JMS PS, no transaction required, I use the default JMS XA connection factory weblogic.jms.XAConnectionFactory.
If I "reply with success", the JMS message is consumed immediately.
If I "reply with error", the JMS message is consumed immediately.
I set the "Transaction Required" on the Proxy Service, I "reply with error", and the JMS message is consumed immediately.
In all the above cases, in the Operations/Monitoring tab, I see 1 message and 0 errors for the Proxy.
I "Raise Error" and the JMS message is played 4 times (redelivered 3 times + 1 time the first attempt) at 10 seconds interval and then it is consumed and redirected to the Error Destination, where it appears with a JMS_BEA_DeliveryFailureReason=2 and JMSXDeliveryCount=0.
In the Operations/Monitoring tab, I see 4 messages and 4 errors for the Proxy.
Same as above, without "Transaction Required", and it behaves the same way.
I consume the messages with a JMS PS, no transaction required, I use the default JMS XA connection factory weblogic.jms.XAConnectionFactory.
If I "reply with success", the JMS message is consumed immediately.
If I "reply with error", the JMS message is consumed immediately.
I set the "Transaction Required" on the Proxy Service, I "reply with error", and the JMS message is consumed immediately.
In all the above cases, in the Operations/Monitoring tab, I see 1 message and 0 errors for the Proxy.
I "Raise Error" and the JMS message is played 4 times (redelivered 3 times + 1 time the first attempt) at 10 seconds interval and then it is consumed and redirected to the Error Destination, where it appears with a JMS_BEA_DeliveryFailureReason=2 and JMSXDeliveryCount=0.
In the Operations/Monitoring tab, I see 4 messages and 4 errors for the Proxy.
Same as above, without "Transaction Required", and it behaves the same way.
Labels:
jms,
OSB,
transactions
The Inner Geek is rejoicing....
reposting this great post:
http://oraclequirks.blogspot.com/2011/12/to-all-those-old-geeks-out-there.html
music made by sending commands to a HP scanner over the SCSI interface
this is really cool stuff
(sorry I am an electronic engineer, I have spent 7 years of my life in front of a Digital State Analyzer and Oscilloscope....)
http://oraclequirks.blogspot.com/2011/12/to-all-those-old-geeks-out-there.html
music made by sending commands to a HP scanner over the SCSI interface
this is really cool stuff
(sorry I am an electronic engineer, I have spent 7 years of my life in front of a Digital State Analyzer and Oscilloscope....)
This is the way the world works
IMF stands for International Monetary Fund, of course. Of the two characters in the Tv screen, one is for sure our glorious Pope Ratzinger, the other seems Bush but I am not sure. On the bottom it says "World bank"
The naked white man might represent the average citizen of the West. His SUV must be parked outside.
The naked white man might represent the average citizen of the West. His SUV must be parked outside.
Assigning a value to $fault
I was trying to assign a value to $fault in a "Error Reporting" service, to see if the built-in "Report" action could parse the $fault and populate the right fields in the Error Report message.
This is a sample $fault:
Unfortunately the $fault variable is meaningful only in the error handler.
If you try to use it in a normal message flow, you get:
Variable name validation failed: The variable "fault" cannot be used here
This is a sample $fault:
<con:fault xmlns:con="http://www.bea.com/wli/sb/context"> <con:errorCode>MYERROR</con:errorCode> <con:reason>MYMESSAGE</con:reason> <con:location> <con:node>PipelinePairNode1</con:node> <con:pipeline>PipelinePairNode1_request</con:pipeline> <con:stage>stage1</con:stage> <con:path>request-pipeline</con:path> </con:location> </con:fault>
Unfortunately the $fault variable is meaningful only in the error handler.
If you try to use it in a normal message flow, you get:
Variable name validation failed: The variable "fault" cannot be used here
Labels:
fault
Tuesday, December 13, 2011
Using JCA JMS Adapter in OSB
[JCATransport:381984]OSB JCA transport does not support adapter type: JMS
This puts an abrupt end to my adventure :o(
This puts an abrupt end to my adventure :o(
Sunday, December 11, 2011
Oracle nXSD in action: parsing EDI to XML
Schema level options:
http://docs.oracle.com/cd/E21764_01/integration.1111/e10231/nfb.htm#CIAHDGJI
Element level options:
http://docs.oracle.com/cd/E21764_01/integration.1111/e10231/nfb.htm#CIACIJCF
lots of valuable examples here
http://otndnld.oracle.co.jp/document/products/as10g/101310/doc_cd/integrate.1013/b28994/nfb.htm#BGBBAJFD
I have a EDI document, made by several fixed length segments.
Each segment starts with a fixed label.
Each segment contains multiple fixed length fields.
Segment can appear in groups (sequence of many segments).
Groups can appear multiple times.
Lesson learned:
* since there is no fixed sequence of segments, you should use this construct
xsd:choice minOccurs="0" maxOccurs="1000"
xsd:element name="ACME0001" type="tns:ACME0001_Type" nxsd:startsWith="ACME0001"
xsd:element name="ACME0002" type="tns:ACME0002_Type" nxsd:startsWith="ACME0002"
....
(using maxOccurs="unbounded" sends the nXSD parser into an infinite loop)
* segments who are not needed, should still be parsed, using a generic element:
xsd:element name="ACME0001" type="tns:Any1064Block_Type" minOccurs="0" maxOccurs="10" nxsd:startsWith="ACME0001 "
where Any1064Block_Type is:
where 1054 = 1064 (length of the segment) - length of the "startsWith" element (ACME0001 )
* if the data you are interested in are in the middle of a segment, you can "skip" the initial characters:
xsd:element name="PONbr" type="xsd:string" minOccurs="1" nxsd:style="fixedLength" nxsd:length="35" nxsd:skip="136"
* you should always consume each segment to its end, maybe using a "FLUFF" element just for the sake of telling the parser to skip data:
xsd:element name="FLUFF2" type="xsd:string" minOccurs="1" nxsd:style="fixedLength" nxsd:length="883"
failing to consume a segment to its exact end will stop the parser.
http://docs.oracle.com/cd/E21764_01/integration.1111/e10231/nfb.htm#CIAHDGJI
Element level options:
http://docs.oracle.com/cd/E21764_01/integration.1111/e10231/nfb.htm#CIACIJCF
lots of valuable examples here
http://otndnld.oracle.co.jp/document/products/as10g/101310/doc_cd/integrate.1013/b28994/nfb.htm#BGBBAJFD
I have a EDI document, made by several fixed length segments.
Each segment starts with a fixed label.
Each segment contains multiple fixed length fields.
Segment can appear in groups (sequence of many segments).
Groups can appear multiple times.
Lesson learned:
* since there is no fixed sequence of segments, you should use this construct
xsd:choice minOccurs="0" maxOccurs="1000"
xsd:element name="ACME0001" type="tns:ACME0001_Type" nxsd:startsWith="ACME0001"
xsd:element name="ACME0002" type="tns:ACME0002_Type" nxsd:startsWith="ACME0002"
....
(using maxOccurs="unbounded" sends the nXSD parser into an infinite loop)
* segments who are not needed, should still be parsed, using a generic element:
xsd:element name="ACME0001" type="tns:Any1064Block_Type" minOccurs="0" maxOccurs="10" nxsd:startsWith="ACME0001 "
where Any1064Block_Type is:
<xsd:complexType name="Any1064Block_Type"> <xsd:sequence> <xsd:element name="DATA" type="xsd:string" nxsd:style="fixedLength" nxsd:length="1054"/> </xsd:sequence> </xsd:complexType>
where 1054 = 1064 (length of the segment) - length of the "startsWith" element (ACME0001 )
* if the data you are interested in are in the middle of a segment, you can "skip" the initial characters:
xsd:element name="PONbr" type="xsd:string" minOccurs="1" nxsd:style="fixedLength" nxsd:length="35" nxsd:skip="136"
* you should always consume each segment to its end, maybe using a "FLUFF" element just for the sake of telling the parser to skip data:
xsd:element name="FLUFF2" type="xsd:string" minOccurs="1" nxsd:style="fixedLength" nxsd:length="883"
failing to consume a segment to its exact end will stop the parser.
Labels:
nxsd
XSD: elements in arbitrary order
my situation is that I have child elements which can occur repeatedly in any order:
Googling around I find this solution:
it seems to work pretty well...
my wish is that XSD contained a native construct like "anyorder", similar to "sequence" or "choice" or "all"
<root> <a>bla</a> <b>bli</b> <b>blo</b> <a>blu</a> <a>ble</a> </root>
Googling around I find this solution:
<xs:complextype mixed="true" name="p"> <xs:choice maxoccurs="unbounded" minoccurs="0"> <xs:element name="a"> <xs:element name="b"> </xs:element></xs:element> </xs:choice> </xs:complextype>
it seems to work pretty well...
my wish is that XSD contained a native construct like "anyorder", similar to "sequence" or "choice" or "all"
Labels:
xsd
Thursday, December 8, 2011
OSB, finding the WebLogic server name on which a message flow is executing
https://forums.oracle.com/forums/thread.jspa?threadID=982549
apparently there is no other way than doing a Java Callout (or better, a Custom XPath) returning System.getProperty("weblogic.Name").
The OSB Reporting puts the server name in the reporting message, but I think it gets it from inside Java code.
apparently there is no other way than doing a Java Callout (or better, a Custom XPath) returning System.getProperty("weblogic.Name").
The OSB Reporting puts the server name in the reporting message, but I think it gets it from inside Java code.
Labels:
OSB
Wednesday, December 7, 2011
WebLogic cluster monitor script
#Script to monitor running cluster #will write thread dumps and other cluster diagnostic info to a file, at regular intervals #Vernetto 2011-11-11 from java.io import File from java.io import FileOutputStream from java.io import FileInputStream from java.util import HashMap from java.util import HashSet from java.util import ArrayList from time import sleep import datetime import zlib import zipfile from os import * configFileProperties = None isConnected = false previousStdout = None #======================================================================================= # Utility function to load properties from a config file #======================================================================================= def loadProps(configPropFile): global configFileProperties propInputStream = FileInputStream(configPropFile) configFileProperties = Properties() configFileProperties.load(propInputStream) def appendToAlarmLog(alarmmessage): alarmsfile = configFileProperties.get('alarmsfile') alarmFile = open(alarmsfile, 'a') alarmFile.write(getNowTimestamp() + ' ' + alarmmessage + '\n') alarmFile.close() def getNowTimestamp(): now = datetime.datetime.now() nowtimestamp = now.strftime("%Y%m%dT%H%M%S") return nowtimestamp def monitorServer(): global isConnected fos = None previousStdout = theInterpreter.getOut() try: #initialize variables serverURL=configFileProperties.get('serverURL') serverName=configFileProperties.get('serverName') username=configFileProperties.get('username') password=configFileProperties.get('password') logFile=configFileProperties.get('logFile') aliveServerCountExpected=configFileProperties.get('aliveServerCountExpected') interval=configFileProperties.get('interval') #initialize timestamp to append to log filename nowtimestamp = getNowTimestamp() #save stdout handle logFileNameWithTimestamp = logFile + '.' + nowtimestamp #set new stdout print "start the script" #easeSyntax() if (not isConnected) : connect(username, password, serverURL) isConnected = true serverRuntime() #redirect output to log file f = File(logFileNameWithTimestamp) fos = FileOutputStream(f) theInterpreter.setOut(fos) cd('/') print 'Health', cmo.getHealthState() cd('/ClusterRuntime/myCluster/') print 'AliveServerCount=', cmo.getAliveServerCount(), ' ServerNames', cmo.getServerNames() if (aliveServerCountExpected != cmo.getAliveServerCount()) : alarmmessage = 'MONITORALARM, we were expecting AliveServerCount ' + aliveServerCountExpected + ' and we have instead %d , see file %s' % (cmo.getAliveServerCount() , logFileNameWithTimestamp, ) print alarmmessage appendToAlarmLog(alarmmessage) cd('/ClusterRuntime/myCluster/UnicastMessaging/UnicastMessagingRuntime') print 'DiscoveredGroupLeaders=', cmo.getDiscoveredGroupLeaders(), ' Groups=', cmo.getGroups(), ' LocalGroupLeaderName=', cmo.getLocalGroupLeaderName(), ' RemoteGroupsDiscoveredCount=', cmo.getRemoteGroupsDiscoveredCount(), ' TotalGroupsCount=', cmo.getTotalGroupsCount() cd('/ServerChannelRuntimes/unicastChannel') print 'AcceptCount=' , cmo.getAcceptCount() , ' MessagesReceivedCount=' , cmo.getMessagesReceivedCount() , ' MessagesSentCount=' , cmo.getMessagesSentCount() scr = cmo.getServerConnectionRuntimes() #scr is an array of weblogic.server.channels.ServerConnectionRuntimeImpl$SerializableConnectionRuntime for myscr in scr: print "BytesReceivedCount=", myscr.getBytesReceivedCount(), " BytesSentCount=", myscr.getBytesSentCount(), " ConnectTime=", myscr.getConnectTime()," MessagesReceivedCount=", myscr.getMessagesReceivedCount(), " MessagesSentCount=", myscr.getMessagesSentCount() print "" threadDump() cd('/JVMRuntime/' + serverName) #this is valid for JRockit #print "HeapFreeCurrent=", cmo.getHeapFreeCurrent(), " TotalGarbageCollectionTime", cmo.getTotalGarbageCollectionTime(), " TotalNumberOfThreads=", cmo.getTotalNumberOfThreads() #this is valid for JRockit print "HeapFreeCurrent=", cmo.getHeapFreeCurrent(), ' HeapSizeCurrent=', cmo.getHeapSizeCurrent() cd('/ThreadPoolRuntime/ThreadPoolRuntime') print 'HoggingThreadCount=', cmo.getHoggingThreadCount(), ' PendingUserRequestCount', cmo.getPendingUserRequestCount(), ' StandbyThreadCount' , cmo.getStandbyThreadCount() print 'CompletedRequestCount=', cmo.getCompletedRequestCount(), ' ExecuteThreadIdleCount=', cmo.getExecuteThreadIdleCount(), ' ExecuteThreadTotalCount=', cmo.getExecuteThreadTotalCount() #restore stdout theInterpreter.setOut(previousStdout) fos.close() #now zip the report zipfileLog = zipfile.ZipFile(logFileNameWithTimestamp + '.zip', 'w') zipfileLog.write(logFileNameWithTimestamp, compress_type=zipfile.ZIP_DEFLATED) zipfileLog.close() os.remove(logFileNameWithTimestamp) except: isConnected = false theInterpreter.setOut(previousStdout) if (fos != None) : fos.close() print "Unexpected error:", sys.exc_info()[0] raise # monitor script init try: # sys.argv[1] is the config properties file configFile = sys.argv[1] print 'Loading config from :', configFile loadProps(configFile) interval = configFileProperties.getProperty('interval') while True: try: sleep(float(interval)) monitorServer() except: errorMessage = "ERROR_QUERYING_SERVER %s - %s - %s"% (sys.exc_info()[0], sys.exc_info()[1], sys.exc_info()[2], ) appendToAlarmLog(errorMessage) dumpStack() except: print "Unexpected error: ", sys.exc_info()[0] dumpStack() raise
and the property file contains:
serverURL=t3://pierrepc:7031
serverName=ms3
username=weblogic
password=welcome1
logFile=C:/pierre/clustermonitor/clustermonitorinfo3.log
alarmsfile=C:/pierre/clustermonitor/clustermonitoralarms3.log
aliveServerCountExpected=3
interval=10
Labels:
cluster
Monday, December 5, 2011
A DSL for OSB
tonight talking with a colleague we envisaged the opportunity of devising a DSL to describe OSB projects without going through all the click-click necessary in Eclipse or in the Web Console.
If anybody wants to join me in this challenge, please drop me an email
publicpierre gmail com
If anybody wants to join me in this challenge, please drop me an email
publicpierre gmail com
Labels:
dsl
Flogging the dead horse
http://www.zdnet.com/blog/projectfailures/21-ways-to-flog-dead-horse-projects/4116
Often, when confronted with something (people, products, methodologies...) which is clearly underperforming, management is in denial and comes up with all sort of workarounds (rather than burying the horse and buying a new one) as the famous "flog the dead horse" story teaches:
I will add more as they come to my mind:
22. ask a consultant to provide the dead horse detailed instructions on how to trot
23. ask a consultant to define SLAs to prove that the horse is actually dead and not simply agonizing
(this things come to my mind because I have desperately tried to push a developer to actually deliver something.... had I done it myself it would have cost me a lot less energies)
Often, when confronted with something (people, products, methodologies...) which is clearly underperforming, management is in denial and comes up with all sort of workarounds (rather than burying the horse and buying a new one) as the famous "flog the dead horse" story teaches:
- Buying a stronger whip.
- Changing riders.
- Say things like, “This is the way we have always ridden this horse.”
- Appointing a committee to study the horse.
- Arranging to visit other sites to see how they ride dead horses.
- Increasing the standards to ride dead horses.
- Appointing a tiger team to revive the dead horse.
- Creating a training session to increase our riding ability.
- Comparing the state of dead horses in today’s environment.
- Change the requirements declaring that “This horse is not dead.”
- Hire contractors to ride the dead horse.
- Harnessing several dead horses together for increased speed.
- Declaring that “No horse is too dead to beat.”
- Providing additional funding to increase the horse’s performance.
- Do a Cost Analysis study to see if contractors can ride it cheaper.
- Purchase a product to make dead horses run faster.
- Declare the horse is “better, faster and cheaper” dead.
- Form a quality circle to find uses for dead horses.
- Revisit the performance requirements for horses.
- Say this horse was procured with cost as an independent variable.
- Promote the dead horse to a supervisory position.
I will add more as they come to my mind:
22. ask a consultant to provide the dead horse detailed instructions on how to trot
23. ask a consultant to define SLAs to prove that the horse is actually dead and not simply agonizing
(this things come to my mind because I have desperately tried to push a developer to actually deliver something.... had I done it myself it would have cost me a lot less energies)
Labels:
managers
Sunday, December 4, 2011
nxsd:validation, nxsd:fieldValidation,
the question is risen here
https://forums.oracle.com/forums/thread.jspa?threadID=1054790
here the official doc
http://docs.oracle.com/cd/E15586_01/integration.1111/e10231/nfb.htm
Top-Level Validation -> nxsd:validation="true"
information about the line and column in the native stream where the error was encountered is not provided by top-level validation.
Field-Level Validation -> nxsd:fieldValidation="true"
only on inbound payloads
information about the exact line and character where the error was encountered is displayed.
So, what is the difference between
a) NOT using any validation at JCA level
b) using nxsd:validation="true" in the nXSD file
c) using nxsd:fieldValidation="true" in the nXSD file
d) using both nxsd:validation="true" and nxsd:fieldValidation="true" in the nXSD file
and submitting a file which has a correct structure but a validation error in a field.
In case a), the file passes the JCA adapter and is handed over to the Proxy Service
In case b), the file is rejected in the JCA adapter, with this message:
Error while translating inbound file : spaceattheend.dat
ORABPEL-11157
Error: translated xml document does not conform to xml schema.
error:Invalid text 'PAL ' in element: 'UOM'.
Please ensure that native data is correct. To turnoff result validation, unset flag nxsd:validation in nxsd
at oracle.tip.pc.services.translation.framework.XlatorHelper.validateDOMNode(XlatorHelper.java:701)
at oracle.tip.pc.services.translation.framework.XlatorHelper.validate(XlatorHelper.java:667)
at oracle.tip.pc.services.translation.xlators.nxsd.NXSDTranslatorImpl.translateFromNative(NXSDTranslatorImpl.java:612)
at oracle.tip.adapter.file.inbound.InboundTranslatorDelegate.xlate(InboundTranslatorDelegate.java:314)
at oracle.tip.adapter.file.inbound.InboundTranslatorDelegate.doXlate(InboundTranslatorDelegate.java:121)
at oracle.tip.adapter.file.inbound.ProcessorDelegate.doXlate(ProcessorDelegate.java:388)
at oracle.tip.adapter.file.inbound.ProcessorDelegate.process(ProcessorDelegate.java:174)
at oracle.tip.adapter.file.inbound.ProcessWork.run(ProcessWork.java:349)
at weblogic.work.ContextWrap.run(ContextWrap.java:41)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
and
Sending message to Adapter Framework for rejection to user-configured rejection handlers : {
file=C:\in\spaceattheend.dat, Exception=ORABPEL-11157
Error: translated xml document does not conform to xml schema.
error:Invalid text 'PAL ' in element: 'UOM'.
Please ensure that native data is correct. To turnoff result validation, unset flag nxsd:validation in nxsd
}
in case c)
you get a similar message, but it shows also the line and column number
Sending message to Adapter Framework for rejection to user-configured rejection handlers : {
file=C:\in\spaceattheend.dat, Exception=ORABPEL-11156
Error: native data read does not conform to xsd type.
actual-value PAL is not valid for data type . Please check before Line=2, Col=1 in the native stream.
Please ensure that native data conforms to xsd type. To turnoff field validation, unset flag nxsd:fieldValidation in nxsd
in case d)
it's same as c)
https://forums.oracle.com/forums/thread.jspa?threadID=1054790
here the official doc
http://docs.oracle.com/cd/E15586_01/integration.1111/e10231/nfb.htm
Top-Level Validation -> nxsd:validation="true"
information about the line and column in the native stream where the error was encountered is not provided by top-level validation.
Field-Level Validation -> nxsd:fieldValidation="true"
only on inbound payloads
information about the exact line and character where the error was encountered is displayed.
So, what is the difference between
a) NOT using any validation at JCA level
b) using nxsd:validation="true" in the nXSD file
c) using nxsd:fieldValidation="true" in the nXSD file
d) using both nxsd:validation="true" and nxsd:fieldValidation="true" in the nXSD file
and submitting a file which has a correct structure but a validation error in a field.
In case a), the file passes the JCA adapter and is handed over to the Proxy Service
In case b), the file is rejected in the JCA adapter, with this message:
Error while translating inbound file : spaceattheend.dat
ORABPEL-11157
Error: translated xml document does not conform to xml schema.
error:Invalid text 'PAL ' in element: 'UOM'.
Please ensure that native data is correct. To turnoff result validation, unset flag nxsd:validation in nxsd
at oracle.tip.pc.services.translation.framework.XlatorHelper.validateDOMNode(XlatorHelper.java:701)
at oracle.tip.pc.services.translation.framework.XlatorHelper.validate(XlatorHelper.java:667)
at oracle.tip.pc.services.translation.xlators.nxsd.NXSDTranslatorImpl.translateFromNative(NXSDTranslatorImpl.java:612)
at oracle.tip.adapter.file.inbound.InboundTranslatorDelegate.xlate(InboundTranslatorDelegate.java:314)
at oracle.tip.adapter.file.inbound.InboundTranslatorDelegate.doXlate(InboundTranslatorDelegate.java:121)
at oracle.tip.adapter.file.inbound.ProcessorDelegate.doXlate(ProcessorDelegate.java:388)
at oracle.tip.adapter.file.inbound.ProcessorDelegate.process(ProcessorDelegate.java:174)
at oracle.tip.adapter.file.inbound.ProcessWork.run(ProcessWork.java:349)
at weblogic.work.ContextWrap.run(ContextWrap.java:41)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
and
Sending message to Adapter Framework for rejection to user-configured rejection handlers : {
file=C:\in\spaceattheend.dat, Exception=ORABPEL-11157
Error: translated xml document does not conform to xml schema.
error:Invalid text 'PAL ' in element: 'UOM'.
Please ensure that native data is correct. To turnoff result validation, unset flag nxsd:validation in nxsd
}
in case c)
you get a similar message, but it shows also the line and column number
Sending message to Adapter Framework for rejection to user-configured rejection handlers : {
file=C:\in\spaceattheend.dat, Exception=ORABPEL-11156
Error: native data read does not conform to xsd type.
actual-value PAL is not valid for data type . Please check before Line=2, Col=1 in the native stream.
Please ensure that native data conforms to xsd type. To turnoff field validation, unset flag nxsd:fieldValidation in nxsd
in case d)
it's same as c)
Labels:
nxsd,
validation
OSB and XMLDB
So, we need to invoke a XML DB service from OSB
I have 2 main alternatives:
Using Native Oracle XML DB Web Services:
http://docs.oracle.com/cd/B28359_01/appdev.111/b28369/xdb_web_services.htm
use the "JCA DB Adapter" "invoke stored procedure" option
http://docs.oracle.com/cd/E15523_01/integration.1111/e10231/adptr_db.htm#CHDFBBCD
.... more to come ....
I have 2 main alternatives:
Using Native Oracle XML DB Web Services:
http://docs.oracle.com/cd/B28359_01/appdev.111/b28369/xdb_web_services.htm
use the "JCA DB Adapter" "invoke stored procedure" option
http://docs.oracle.com/cd/E15523_01/integration.1111/e10231/adptr_db.htm#CHDFBBCD
.... more to come ....
Labels:
xmldb
Saturday, December 3, 2011
OSB Proxy Services and Transactions
This is a topic on which I still have to experiment a lot.
http://docs.oracle.com/cd/E14571_01/doc.1111/e15866/ui_ref.htm#i1345330
This is quite interesting.
- If a global transaction already exists, the transport provider propagates it in the request
- if Service Callouts or Publish actions have the outbound quality of service parameter set to best-effort (the default), Oracle Service Bus executes those actions outside of the transaction context. To have Oracle Service Bus execute those actions in the same request transaction context, set quality of service on those actions to exactly-once.
« Publish « is executed in a separate transaction only if the Quality of Service is “best effort”. If you use “exactly once”, the Publish is executed in the same TX
http://docs.oracle.com/cd/E14571_01/doc.1111/e15866/ui_ref.htm#i1345330
This is quite interesting.
- If a global transaction already exists, the transport provider propagates it in the request
- if Service Callouts or Publish actions have the outbound quality of service parameter set to best-effort (the default), Oracle Service Bus executes those actions outside of the transaction context. To have Oracle Service Bus execute those actions in the same request transaction context, set quality of service on those actions to exactly-once.
« Publish « is executed in a separate transaction only if the Quality of Service is “best effort”. If you use “exactly once”, the Publish is executed in the same TX
Labels:
OSB,
transactions
OSB java callout and presenting ProxyService output as HTML
Linking in the excellent post by Chris
you can have your browser interpret as HTML the response of your Proxy Service, by setting the inbound-response transport parameter "Content-Type" to "text/html"
you can have your browser interpret as HTML the response of your Proxy Service, by setting the inbound-response transport parameter "Content-Type" to "text/html"
Best Muppet Shows ever
http://www.youtube.com/watch?v=vgcuxzB6yEA#t=6m53s Marathon Tree Staring Context
http://www.youtube.com/watch?v=xZivb3zjlo0#t=2m24s&feature=player_embedded Inchworm Song
http://www.youtube.com/watch?v=-uqWUc5ZvZw#t=1m54s The Beauty
http://www.youtube.com/watch?v=wM89T74MPnE Manamana
http://www.youtube.com/watch?v=KKLWfhhLZAs&NR=1
http://www.youtube.com/watch?v=0y7r2E1Cags&feature=related
http://www.youtube.com/watch?v=vm-sFEe6FVc#t=3m00s gargoyle min 3:00
http://www.youtube.com/watch?v=JN5Mqr6tRlw Hugga Wagga
http://www.youtube.com/watch?v=F_aZyboR_Io&feature=related
http://www.youtube.com/watch?v=n_BmeBfV-O4&feature=related
http://www.youtube.com/watch?v=pAWpeVbDVdU&NR=1 minute 4.00 conga
http://www.youtube.com/watch?v=i-2PkfIRvEs&feature=endscreen&NR=1 Miss Piggy in her tantrums
http://www.youtube.com/watch?NR=1&feature=endscreen&v=dTUb6ldYovw I can't see me loving... and Cousbinian Love
http://www.youtube.com/watch?v=zh8IgZ-GQ9s&feature=autoplay&list=PL5E4DBAE04F823374&lf=results_video&playnext=4 insults contest
http://www.youtube.com/watch?v=N8ZILv8sOoQ minute 4 I am calm inside
http://www.youtube.com/watch?v=0c2HA5i0hbM&feature=related the phantom of the Muppet Show
http://www.youtube.com/watch?feature=endscreen&NR=1&v=BJMhELXkHmw English Country Garden
http://www.youtube.com/watch?v=CLQLJF7FWU8&feature=player_detailpage#t=322s marriage song
http://www.youtube.com/watch?v=8ahQBc58vDU Camelot
http://www.youtube.com/watch?v=WsuxCaa8-JQ&feature=related Greek dance
http://www.youtube.com/watch?v=LnN0zmqSv30#t=240s Beethoven sleeping
http://www.youtube.com/watch?v=UqO_AGdsQ0Y&feature=related Camel dancing
http://www.youtube.com/watch?feature=player_detailpage&v=kQXAeqz5sP4#t=127s prairie dogs
http://www.youtube.com/watch?v=UTlvSIKJK7E sixty seconds
http://www.youtube.com/watch?feature=player_detailpage&v=AM6IoLarquI#t=427s the meaning and purpose of life
http://www.youtube.com/watch?feature=player_detailpage&v=j65WndFxCJA#t=125s Boogie in the barnyard
http://www.youtube.com/watch?feature=player_detailpage&v=D9qqfG9pC4I#t=47s when you think you hit the bottom
http://www.youtube.com/watch?feature=player_detailpage&v=fehvtdRxZSE#t=159s Vikings in the Navy
http://www.youtube.com/watch?v=xZivb3zjlo0#t=2m24s&feature=player_embedded Inchworm Song
http://www.youtube.com/watch?v=-uqWUc5ZvZw#t=1m54s The Beauty
http://www.youtube.com/watch?v=wM89T74MPnE Manamana
http://www.youtube.com/watch?v=KKLWfhhLZAs&NR=1
http://www.youtube.com/watch?v=0y7r2E1Cags&feature=related
http://www.youtube.com/watch?v=vm-sFEe6FVc#t=3m00s gargoyle min 3:00
http://www.youtube.com/watch?v=JN5Mqr6tRlw Hugga Wagga
http://www.youtube.com/watch?v=F_aZyboR_Io&feature=related
http://www.youtube.com/watch?v=n_BmeBfV-O4&feature=related
http://www.youtube.com/watch?v=pAWpeVbDVdU&NR=1 minute 4.00 conga
http://www.youtube.com/watch?v=i-2PkfIRvEs&feature=endscreen&NR=1 Miss Piggy in her tantrums
http://www.youtube.com/watch?NR=1&feature=endscreen&v=dTUb6ldYovw I can't see me loving... and Cousbinian Love
http://www.youtube.com/watch?v=zh8IgZ-GQ9s&feature=autoplay&list=PL5E4DBAE04F823374&lf=results_video&playnext=4 insults contest
http://www.youtube.com/watch?v=N8ZILv8sOoQ minute 4 I am calm inside
http://www.youtube.com/watch?v=0c2HA5i0hbM&feature=related the phantom of the Muppet Show
http://www.youtube.com/watch?feature=endscreen&NR=1&v=BJMhELXkHmw English Country Garden
http://www.youtube.com/watch?v=CLQLJF7FWU8&feature=player_detailpage#t=322s marriage song
http://www.youtube.com/watch?v=8ahQBc58vDU Camelot
http://www.youtube.com/watch?v=WsuxCaa8-JQ&feature=related Greek dance
http://www.youtube.com/watch?v=LnN0zmqSv30#t=240s Beethoven sleeping
http://www.youtube.com/watch?v=UqO_AGdsQ0Y&feature=related Camel dancing
http://www.youtube.com/watch?feature=player_detailpage&v=kQXAeqz5sP4#t=127s prairie dogs
http://www.youtube.com/watch?v=UTlvSIKJK7E sixty seconds
http://www.youtube.com/watch?feature=player_detailpage&v=AM6IoLarquI#t=427s the meaning and purpose of life
http://www.youtube.com/watch?feature=player_detailpage&v=j65WndFxCJA#t=125s Boogie in the barnyard
http://www.youtube.com/watch?feature=player_detailpage&v=D9qqfG9pC4I#t=47s when you think you hit the bottom
http://www.youtube.com/watch?feature=player_detailpage&v=fehvtdRxZSE#t=159s Vikings in the Navy
Labels:
muppets
Examining WebLogic embedded LDAP files with Apache Active Directory
Install Apache Active Directory
You can open either
C:\bea1035\user_projects\domains\prod_domain\servers\osb_server1\data\ldap\osb_server1.ldif
or
C:\bea1035\user_projects\domains\prod_domain\servers\AdminServer\data\ldap\osb_server1.ldif
they should be identical (if they are not, be worried)
you will find something along this line:
(domain, realm, groups, people)
dn: dc=prod_domain
dc: prod_domain
objectclass: top
objectclass: domain
orclguid: D4F9FF20F2B911E0BF1ED596F66B2A93
createTimestamp: 201109092101Z
creatorsName: cn=Admin
dn: ou=myrealm,dc=prod_domain
ou: myrealm
objectclass: top
objectclass: organizationalUnit
orclguid: D4FD8190F2B911E0BF1ED596F66B2A93
createTimestamp: 201109092101Z
creatorsName: cn=Admin
dn: ou=groups,ou=myrealm,dc=prod_domain
ou: groups
objectclass: organizationalUnit
objectclass: top
orclguid: D4FDCFB0F2B911E0BF1ED596F66B2A93
createTimestamp: 201109092101Z
creatorsName: cn=Admin
dn: ou=people,ou=myrealm,dc=prod_domain
ou: people
objectclass: organizationalUnit
objectclass: top
orclguid: D4FDF6C0F2B911E0BF1ED596F66B2A93
createTimestamp: 201109092101Z
creatorsName: cn=Admin
dn: cn=ALSBSystemGroup,ou=groups,ou=myrealm,dc=prod_domain
memberURL: ldap:///ou=groups,ou=myrealm,dc=prod_domain??sub?(&(objectclass=person)(wlsMemberOf=cn=ALSBSystemGroup,ou=groups,ou=myrealm,dc=prod_domain))
description: The ALSBSystemGroup is a built-in group which has access to ALSBs internals artifacts
objectclass: top
objectclass: groupOfUniqueNames
objectclass: groupOfURLs
cn: ALSBSystemGroup
orclguid: D4FF0830F2B911E0BF1ED596F66B2A93
createTimestamp: 201109092101Z
creatorsName: cn=Admin
follow list of all groups
then the users will appear:
dn: uid=OracleSystemUser,ou=people,ou=myrealm,dc=prod_domain
description: Oracle application software system user.
objectclass: inetOrgPerson
objectclass: organizationalPerson
objectclass: person
objectclass: top
objectclass: wlsUser
cn: OracleSystemUser
sn: OracleSystemUser
userpassword:: e3NzaGF9dEFnSFNTS25IMk54WjJhOUNkUGNGaGdTMm1LWUFxcms=
uid: OracleSystemUser
wlsMemberOf: cn=OracleSystemGroup,ou=groups,ou=myrealm,dc=prod_domain
orclguid: D508CC30F2B911E0BF1ED596F66B2A93
createTimestamp: 201109092101Z
creatorsName: cn=Admin
dn: uid=alsb-system-user,ou=people,ou=myrealm,dc=prod_domain
description: The ALSB system user is a built-in system account which belongs to the ALSBSystem role. As such it has access to ALSBs internal artifacts. The password for this account is automatically changed when the admin server boots to prevent direct access to this account.
objectclass: inetOrgPerson
objectclass: organizationalPerson
objectclass: person
objectclass: top
objectclass: wlsUser
cn: alsb-system-user
sn: alsb-system-user
uid: alsb-system-user
wlsMemberOf: cn=ALSBSystemGroup,ou=groups,ou=myrealm,dc=prod_domain
orclguid: D5091A50F2B911E0BF1ED596F66B2A93
createTimestamp: 201109092101Z
creatorsName: cn=Admin
userpassword:: e3NzaGF9UVhWVUVOSzN4VFRsUSs1REVWdWpvRFhKbU83K29VMXo=
modifyTimeStamp: 201110231247Z
modifiersName: cn=Admin
dn: uid=weblogic,ou=people,ou=myrealm,dc=prod_domain
description: This user is the default administrator.
objectclass: inetOrgPerson
objectclass: organizationalPerson
objectclass: person
objectclass: top
objectclass: wlsUser
cn: weblogic
sn: weblogic
userpassword:: e3NzaGF9bVo2RlJqazM1cXJFOFpSbXVlVUdRWUNwQmluUXptUFE=
uid: weblogic
wlsMemberOf: cn=Administrators,ou=groups,ou=myrealm,dc=prod_domain
orclguid: D5096870F2B911E0BF1ED596F66B2A93
createTimestamp: 201109092101Z
creatorsName: cn=Admin
how fascinating...just kidding.
You can open either
C:\bea1035\user_projects\domains\prod_domain\servers\osb_server1\data\ldap\osb_server1.ldif
or
C:\bea1035\user_projects\domains\prod_domain\servers\AdminServer\data\ldap\osb_server1.ldif
they should be identical (if they are not, be worried)
you will find something along this line:
(domain, realm, groups, people)
dn: dc=prod_domain
dc: prod_domain
objectclass: top
objectclass: domain
orclguid: D4F9FF20F2B911E0BF1ED596F66B2A93
createTimestamp: 201109092101Z
creatorsName: cn=Admin
dn: ou=myrealm,dc=prod_domain
ou: myrealm
objectclass: top
objectclass: organizationalUnit
orclguid: D4FD8190F2B911E0BF1ED596F66B2A93
createTimestamp: 201109092101Z
creatorsName: cn=Admin
dn: ou=groups,ou=myrealm,dc=prod_domain
ou: groups
objectclass: organizationalUnit
objectclass: top
orclguid: D4FDCFB0F2B911E0BF1ED596F66B2A93
createTimestamp: 201109092101Z
creatorsName: cn=Admin
dn: ou=people,ou=myrealm,dc=prod_domain
ou: people
objectclass: organizationalUnit
objectclass: top
orclguid: D4FDF6C0F2B911E0BF1ED596F66B2A93
createTimestamp: 201109092101Z
creatorsName: cn=Admin
dn: cn=ALSBSystemGroup,ou=groups,ou=myrealm,dc=prod_domain
memberURL: ldap:///ou=groups,ou=myrealm,dc=prod_domain??sub?(&(objectclass=person)(wlsMemberOf=cn=ALSBSystemGroup,ou=groups,ou=myrealm,dc=prod_domain))
description: The ALSBSystemGroup is a built-in group which has access to ALSBs internals artifacts
objectclass: top
objectclass: groupOfUniqueNames
objectclass: groupOfURLs
cn: ALSBSystemGroup
orclguid: D4FF0830F2B911E0BF1ED596F66B2A93
createTimestamp: 201109092101Z
creatorsName: cn=Admin
follow list of all groups
then the users will appear:
dn: uid=OracleSystemUser,ou=people,ou=myrealm,dc=prod_domain
description: Oracle application software system user.
objectclass: inetOrgPerson
objectclass: organizationalPerson
objectclass: person
objectclass: top
objectclass: wlsUser
cn: OracleSystemUser
sn: OracleSystemUser
userpassword:: e3NzaGF9dEFnSFNTS25IMk54WjJhOUNkUGNGaGdTMm1LWUFxcms=
uid: OracleSystemUser
wlsMemberOf: cn=OracleSystemGroup,ou=groups,ou=myrealm,dc=prod_domain
orclguid: D508CC30F2B911E0BF1ED596F66B2A93
createTimestamp: 201109092101Z
creatorsName: cn=Admin
dn: uid=alsb-system-user,ou=people,ou=myrealm,dc=prod_domain
description: The ALSB system user is a built-in system account which belongs to the ALSBSystem role. As such it has access to ALSBs internal artifacts. The password for this account is automatically changed when the admin server boots to prevent direct access to this account.
objectclass: inetOrgPerson
objectclass: organizationalPerson
objectclass: person
objectclass: top
objectclass: wlsUser
cn: alsb-system-user
sn: alsb-system-user
uid: alsb-system-user
wlsMemberOf: cn=ALSBSystemGroup,ou=groups,ou=myrealm,dc=prod_domain
orclguid: D5091A50F2B911E0BF1ED596F66B2A93
createTimestamp: 201109092101Z
creatorsName: cn=Admin
userpassword:: e3NzaGF9UVhWVUVOSzN4VFRsUSs1REVWdWpvRFhKbU83K29VMXo=
modifyTimeStamp: 201110231247Z
modifiersName: cn=Admin
dn: uid=weblogic,ou=people,ou=myrealm,dc=prod_domain
description: This user is the default administrator.
objectclass: inetOrgPerson
objectclass: organizationalPerson
objectclass: person
objectclass: top
objectclass: wlsUser
cn: weblogic
sn: weblogic
userpassword:: e3NzaGF9bVo2RlJqazM1cXJFOFpSbXVlVUdRWUNwQmluUXptUFE=
uid: weblogic
wlsMemberOf: cn=Administrators,ou=groups,ou=myrealm,dc=prod_domain
orclguid: D5096870F2B911E0BF1ED596F66B2A93
createTimestamp: 201109092101Z
creatorsName: cn=Admin
how fascinating...just kidding.
Labels:
LDAP
OSB move remote file with JCA FTP Adapter
A common requirement is to add a bit of transactional behavior in FTP operations:
Example:
- FTP file1 to remote dir /path/to/myfiles
- FTP file2 to remote dir /path/to/myfiles
- tell remote system that he can start processing file1 and file2
If FTP of file2 fails, you don't want to leave file1 hanging around.
So you should add a fastidious compensation action in the Error Handler of "FTP file2" to undo the "FTP file1" operation.
Also, fastidiously the file could be picked up by remote system before I end transferring it (it should not happen, I guess it depends on the FTP server implementation, it's just one extra concern I have).
This clearly sucks.
Luckily the Oracle JCA FTP Adapter supports moving remote files.
The FTPMove operation with Type="MOVE" has been successfully tested, using Transport Headers to pass the "file name from" and "to" parameters to the JCA Adapter.
Interestingly enough, you can also COPY and DELETE files remotely.
So our flow will be:
- FTP file1 to remote dir /path/to/myfilestemp
- FTP file2 to remote dir /path/to/myfilestemp
- FTP move file1 to /path/to/myfiles
- FTP move file2 to /path/to/myfiles
Ok you will say "what if - ##FTP move file2 to /path/to/myfiles## fails?".
Well, I guess that can happen....
Example:
- FTP file1 to remote dir /path/to/myfiles
- FTP file2 to remote dir /path/to/myfiles
- tell remote system that he can start processing file1 and file2
If FTP of file2 fails, you don't want to leave file1 hanging around.
So you should add a fastidious compensation action in the Error Handler of "FTP file2" to undo the "FTP file1" operation.
Also, fastidiously the file could be picked up by remote system before I end transferring it (it should not happen, I guess it depends on the FTP server implementation, it's just one extra concern I have).
This clearly sucks.
Luckily the Oracle JCA FTP Adapter supports moving remote files.
The FTPMove operation with Type="MOVE" has been successfully tested, using Transport Headers to pass the "file name from" and "to" parameters to the JCA Adapter.
Interestingly enough, you can also COPY and DELETE files remotely.
So our flow will be:
- FTP file1 to remote dir /path/to/myfilestemp
- FTP file2 to remote dir /path/to/myfilestemp
- FTP move file1 to /path/to/myfiles
- FTP move file2 to /path/to/myfiles
Ok you will say "what if - ##FTP move file2 to /path/to/myfiles## fails?".
Well, I guess that can happen....
Labels:
ftpadapter,
JCA
Animated Powerpoint to illustrate business flows
I have experimented adding PowerPoint animation over the Visio (Gregor Hohpe EAI Stencils) diagrams showing our end-to-end solution.
Just use a Message Icon and show it running along from one component to another, generating side error/tracking messages, being bounced back and replayed, being redirected to an error queue/folder.
Animation adds a great value to your documentation when it comes to dynamically illustrate your business flow.
Just use a Message Icon and show it running along from one component to another, generating side error/tracking messages, being bounced back and replayed, being redirected to an error queue/folder.
Animation adds a great value to your documentation when it comes to dynamically illustrate your business flow.
Labels:
powerpoint
Thursday, December 1, 2011
OSB, how to get the equivalent of System.currentTimeMillis()
try:
(fn:current-dateTime() - xs:dateTime("1970-01-01T00:00:00-00:00")) div xdt:dayTimeDuration("PT0.001S")
(thanks to Luciano for this)
or do a Custom XPath returning System.currentTimeMillis() from Java.
(fn:current-dateTime() - xs:dateTime("1970-01-01T00:00:00-00:00")) div xdt:dayTimeDuration("PT0.001S")
(thanks to Luciano for this)
or do a Custom XPath returning System.currentTimeMillis() from Java.
Labels:
OSB
OSB Console: Another session operation is in progress. Please retry later.
I have seen this problem a number of times.
Two people login with the same credentials, and at the time one activates (or even discard!) a OSB Session, he gets this message.
The only solution known to me is to restart the whole environment.
Possibly you must also delete the session in ${DOMAIN_HOME}/osb/config/sessions
Ideally you should create a WebLogic user per operator, to avoid these kind of issues.
Two people login with the same credentials, and at the time one activates (or even discard!) a OSB Session, he gets this message.
The only solution known to me is to restart the whole environment.
Possibly you must also delete the session in ${DOMAIN_HOME}/osb/config/sessions
Ideally you should create a WebLogic user per operator, to avoid these kind of issues.
Labels:
OSB
Subscribe to:
Posts (Atom)