Featured Posts

Uncategorized

Oracle Database adapter, invalid customization

Just wasted a few hours of my life.

I’m trying to update a dbadapter with a some wlst and a property file.
Result :
connection_pools
Same eis connection is getting added 3 times.

After this i can’t delete the duplicate entries in the console.

The outbound connection instance eis/DB/myDC in group javax.resource.cci.ConnectionFactory is defined explicitly in the applications deployment descriptors and may not 
be deleted via the console.

Content of the propertyfile :
|myds.eis=eis/DB/myDC | (without the pipelines)

At the end of the last row a space got added to the value of the ‘myds.eis’ property.
Result : invalid db adapter configuration ๐Ÿ˜‰

soasuite

Oracle SOA Suite 12c, Unable to get Metadata Manager for DVM

Little reminder :

folder_structure

bpel file uses the next :
[code language=”xml”]
ora:doXSLTransformForDoc(“../Transformations/transfBewaarNotificatie.xsl”, $inputVariable.notificatie)
[/code]

xsl file used to be using the next :
[code language=”xml”]

[/code]

this will fail (the location of the dvm file isn’t relative to both the .bpel file and the .xsl file), correct path to the dvm file will be

[code language=”xml”]

[/code]

besides that i had to use ‘actie.dvm’ instead of the ‘actie’ string.

stacktrace
[code language=”xml”]

140015


env:Server
An error occurs while processing the XPath expression; the expression is ora:doXSLTransformForDoc(“../Transformations/transfBewaarNotificatie.xsl”, $inputVariable.notificatie,)


XPath expression failed to execute.
An error occurs while processing the XPath expression; the expression is ora:doXSLTransformForDoc(“../Transformations/transfBewaarNotificatie.xsl”, $inputVariable.notificatie)
The XPath expression failed to execute; the reason was: javax.xml.transform.TransformerException: oramds:/deployed-composites/myapp/eventHandler_rev13.0-SNAPSHOT/Transformations/transfBewaarNotificatie.xsl: XML-22044: (Error) Extension function error: Error invoking ‘lookupValue’:’oracle.tip.dvm.exception.DVMValidationException: Unable to get Metadata Manager for DVM “oramds:/deployed-composites/myapp/actie”
Please ensure the Metadata Manager is available.’
Check the detailed root cause described in the exception message text and verify that the XPath query is correct.





[/code]

Uncategorized

Oracle Mediator, the-always-give-response-pattern by using the Echo-reply

In my usecase i subscribed to an eventbus solution (rabbitmq with some custom code to be able to publish to consumers based on the soap protocol).

The backend system which generated the notications can generate the next type of events :

— employeename got changed
[code language=”xml”]

EMPLOYEE
EMPLOYEE

[/code]

— employee contactaddress got changed
[code language=”xml”]

EMPLOYEE
ADDRESS

[/code]

The current subscription mechanism only allows me to subscribe based on the value of entity.
Since i’m not interested in all EMPLOYEE related events i need to do the filtering myself.

When i register myself as consumer on the event i need to configure a soap endpoint at which the event bus will deliver the soap envelope.
The definition of this soap interface defines a http sync operation. (http 200)

This means, when the event bus tries to deliver an event and it receives back a soap response with http200, the message will be removed from the queue (i have 1 queue dedicated for my consumer application).
When the event bus tries to deliver an event and it receives back a empty response with http202, the publish on the event bus will fail since it checks on a valid soap body response.

So..this is a bit of background information.

The event bus publishes the event to our Oracle SOA Suite 12c platform. We store the events and have polling interfaces which process the events based on entity values.
To process events as soon as possible i was playing a bit with the meditor for filtering the messages. This all works ok.
Problem : when i was sending an event which wouldn’t pass the filter of the first (and only) routing rule, i would receive a http202.

Since the event bus won’t remove the event (since it’s received http202), the event will end up in a retry-sitution, this is not wanted.
I want to reply back a http200 in both situations (events i’m interested in and events i’m not interested in).

Let’s copy/paste some code from my mediator

[code language=”xml”]






(
($in.notification/nce:notification/nce:entity = ‘EMPLOYEE’ and $in.notification/nce:notification/nce:subentity = ‘EMPLOYEE’)
)













[/code]

When i send a event EMPLOYEE/EMPLOYEE combination this will pass the filter restriction and it will be stored (http200 will be send back to the client).
When i send a event EMPLOYEE/ADDRESS combination this will not pass the filter restriction (http202 will be send back to the client).

Now let’s make use of the “Echo Reply” routing rule type.

[code language=”xml”]






(
($in.notification/nce:notification/nce:entity = ‘EMPLOYEE’ and $in.notification/nce:notification/nce:subentity = ‘EMPLOYEE’)
)



















[/code]

I’m using the “Sequential routing rule” option to force the mediator to evaluate the routing rules in the order they’re added to the mediator.

If an event matches the first case filter, it will pass on the event and it will pass on the response from the backend system.
If an event doesn’t match all the filters of all the cases it will end up at the “otherwise” (last routing rule) case. Since this one just sends back and echo with the ok response from and xslt, the event bus will receive the http200.
Now both wanted and unwanted events will be removed from the event bus.

I could have added extra routing rules to define the opposite of for example the =’EMPLOYEE’ (!=EMPLOYEE) expression but then you will arrive at the problem of defining the opposite of (=’EMPLOYEE’ AND =’ADDRESS’)
which means i need to list all the possible event types and exclude them (mathematical negation ?).

A lot of non Oracle Mediator related information, sorry ;). Just wanted to share my first ever use of the mighty “Echo reply” routing rule ๐Ÿ˜‰

oracle, soa

Oracle Maven Repository in Nexus, authentication failure

Short overview of some last week failing builds at our site ๐Ÿ˜‰

Since a while ago it’s possible to register proxy repositories in Nexus based on the Oracle Maven Repository.
To be able to proxy this repository you need to make use of an oracle account for the autenthication before you can download the artifact.

Let’s check the logging to understand what it does (i can rephrase the logfile or just copy/paste it ;), when others google for it it will find the hit much easier)
[code language=”xml”]
2016-11-11 15:17:54 INFO [tp2714330-28743] – org.sonatype.nexus.proxy.maven.routing.internal.ManagerImpl – Initializing non-existing prefix file of newly added “oracle_maven_proxy” [id=oracle_maven_proxy]
2016-11-11 15:17:54 INFO [ar-4-thread-3 ] – org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientManagerImpl – Allowing circular redirects in proxy M2Repository(id=oracle_maven_proxy)
2016-11-11 15:17:54 INFO [ar-4-thread-3 ] – org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientManagerImpl – Allowing cookie use in proxy M2Repository(id=oracle_maven_proxy)
2016-11-11 15:17:54 INFO [tp2714330-28743] – org.sonatype.nexus.proxy.registry.DefaultRepositoryRegistry – Added repository “oracle_maven_proxy” [id=oracle_maven_proxy][contentClass=Maven2][mainFacet=org.sonatype.nexus.proxy.maven.MavenProxyRepository]
2016-11-11 15:17:54 INFO [tp2714330-28743] – org.sonatype.nexus.configuration.application.DefaultNexusConfiguration – Applying Nexus Configuration made by admin…
2016-11-11 15:17:54 INFO [tp2714330-28743] – org.sonatype.nexus.configuration.application.DefaultNexusConfiguration – Applying Nexus Configuration made by admin…
2016-11-11 15:17:55 INFO [ool-1-thread-19] – org.sonatype.nexus.index.tasks.UpdateIndexTask – Scheduled task (UpdateIndexTask) started :: Updating repository index “oracle_maven_proxy” from path null and below.
2016-11-11 15:17:55 INFO [ool-1-thread-19] – org.sonatype.nexus.index.DefaultIndexerManager – Trying to get remote index for repository “oracle_maven_proxy” [id=oracle_maven_proxy]
2016-11-11 15:17:55 INFO [ool-1-thread-19] – org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientRemoteStorage – Initializing remote transport for proxy repository “oracle_maven_proxy” [id=oracle_maven_proxy]…
2016-11-11 15:17:55 INFO [ool-1-thread-19] – org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientManagerImpl – Allowing circular redirects in proxy M2Repository(id=oracle_maven_proxy)
2016-11-11 15:17:55 INFO [ool-1-thread-19] – org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientManagerImpl – Allowing cookie use in proxy M2Repository(id=oracle_maven_proxy)
2016-11-11 15:17:55 DEBUG [ool-1-thread-19] – remote.storage.outbound – [oracle_maven_proxy] GET https://maven.oracle.com/.index/nexus-maven-repository-index.properties
2016-11-11 15:17:55 DEBUG [ar-4-thread-3 ] – remote.storage.outbound – [oracle_maven_proxy] Downgrade from HTTPS to HTTP during 301 redirect https://maven.oracle.com/ -> http://www.oracle.com/webfolder/application/maven/index.html
2016-11-11 15:17:55 DEBUG [ar-4-thread-3 ] – remote.storage.outbound – [oracle_maven_proxy] Following 301 redirect https://maven.oracle.com/ -> http://www.oracle.com/webfolder/application/maven/index.html
2016-11-11 15:17:55 DEBUG [ar-4-thread-3 ] – remote.storage.outbound – [oracle_maven_proxy] HEAD https://maven.oracle.com/.meta/prefixes.txt
2016-11-11 15:17:55 DEBUG [y-3-thread-1103] – remote.storage.outbound – [oracle_maven_proxy] HEAD https://maven.oracle.com/
2016-11-11 15:17:55 DEBUG [ool-1-thread-19] – remote.storage.outbound – [oracle_maven_proxy] Downgrade from HTTPS to HTTP during 301 redirect https://maven.oracle.com/.index/nexus-maven-repository-index.properties -> http://www.oracle.com/webfolder/application/maven/maven-index/nexus-maven-repository-index.properties
2016-11-11 15:17:55 DEBUG [ool-1-thread-19] – remote.storage.outbound – [oracle_maven_proxy] Following 301 redirect https://maven.oracle.com/.index/nexus-maven-repository-index.properties -> http://www.oracle.com/webfolder/application/maven/maven-index/nexus-maven-repository-index.properties
2016-11-11 15:17:56 DEBUG [ar-4-thread-3 ] – remote.storage.outbound – [oracle_maven_proxy] Following 301 redirect https://maven.oracle.com/.meta/prefixes.txt -> https://www.oracle.com/content/secure/maven/content/.meta/prefixes.txt
2016-11-11 15:17:56 DEBUG [ool-1-thread-19] – remote.storage.outbound – [oracle_maven_proxy] GET https://maven.oracle.com/.index/nexus-maven-repository-index.properties -> HTTP/1.1 200 OK; 992.5 ms
2016-11-11 15:17:56 INFO [ool-1-thread-19] – org.sonatype.nexus.index.DefaultIndexerManager – Cannot incrementally update index for repository oracle_maven_proxy
2016-11-11 15:17:56 INFO [ool-1-thread-19] – org.sonatype.nexus.index.DefaultIndexerManager – Unable to incrementally update index for repository oracle_maven_proxy. Trying full index update
2016-11-11 15:17:56 DEBUG [y-3-thread-1103] – remote.storage.outbound – [oracle_maven_proxy] Downgrade from HTTPS to HTTP during 301 redirect https://maven.oracle.com/ -> http://www.oracle.com/webfolder/application/maven/index.html
2016-11-11 15:17:56 DEBUG [y-3-thread-1103] – remote.storage.outbound – [oracle_maven_proxy] Following 301 redirect https://maven.oracle.com/ -> http://www.oracle.com/webfolder/application/maven/index.html
2016-11-11 15:17:56 DEBUG [y-3-thread-1103] – remote.storage.outbound – [oracle_maven_proxy] HEAD https://maven.oracle.com/ -> HTTP/1.1 200 OK; 700.4 ms
2016-11-11 15:17:56 INFO [ool-1-thread-19] – org.sonatype.nexus.index.DefaultIndexerManager – Trying to get remote index for repository “oracle_maven_proxy” [id=oracle_maven_proxy]
2016-11-11 15:17:56 DEBUG [ool-1-thread-19] – remote.storage.outbound – [oracle_maven_proxy] GET https://maven.oracle.com/.index/nexus-maven-repository-index.properties
2016-11-11 15:17:56 DEBUG [ar-4-thread-3 ] – remote.storage.outbound – [oracle_maven_proxy] Following 302 redirect https://maven.oracle.com/content/secure/maven/content/.meta/prefixes.txt -> https://login.oracle.com:443/oam/server/obrareq.cgi?encquery%3DpWVt9LA%2FZO2Zg9oy7%2FfjF6%2Fq7czpe3N0fSfRMalYRxEAG7nZX7uCOfu9%2FH1iUHyykaP0yHYrwXTXljpSaNgubNmx747sXOvhkNhMJhz0%2FdII9KfMspGx41DxkKrd5SfcHIBe0hGXyeDIOj2%2Ff3TdGqo%2Bu%2FZ%2FR5mcbyYh9%2Bx1915udAdYpHtKaAy4k1qmQeGmu9slCaT%2Fzyrob5nhmg27EuXitqn0MaSvGkmwyBT%2ByGG0YSe%2Bi1AXJY%2FGzPUVZCc6uYi7yP4fVtSLHDGP12vXeITC1C8x0XK3M%2BwhisZHVT3oM6a9Qjth59E9LmoUZXWsthrlBY%2F5%2FN0ZjvNo4eGZIlR2s56rwB5W95fpz4VU5e8X%2FJqM%2FuaRm%2FaCwWrw%2FSdJznE8xcmwrDHZInl8A6wiJg%3D%3D%20agentid%3Dwww.oracle.com%20ver%3D1%20crmethod%3D2&ECID-Context=1.005GGSc4oMA2rITYU9q2VO00027m0042D6%3BkXjE
2016-11-11 15:17:56 DEBUG [ool-1-thread-19] – remote.storage.outbound – [oracle_maven_proxy] Downgrade from HTTPS to HTTP during 301 redirect https://maven.oracle.com/.index/nexus-maven-repository-index.properties -> http://www.oracle.com/webfolder/application/maven/maven-index/nexus-maven-repository-index.properties
2016-11-11 15:17:56 DEBUG [ool-1-thread-19] – remote.storage.outbound – [oracle_maven_proxy] Following 301 redirect https://maven.oracle.com/.index/nexus-maven-repository-index.properties -> http://www.oracle.com/webfolder/application/maven/maven-index/nexus-maven-repository-index.properties
2016-11-11 15:17:56 DEBUG [ool-1-thread-19] – remote.storage.outbound – [oracle_maven_proxy] GET https://maven.oracle.com/.index/nexus-maven-repository-index.properties -> HTTP/1.1 200 OK; 681.5 ms
2016-11-11 15:17:56 DEBUG [ool-1-thread-19] – remote.storage.outbound – [oracle_maven_proxy] GET https://maven.oracle.com/.index/nexus-maven-repository-index.gz
2016-11-11 15:17:57 DEBUG [ool-1-thread-19] – remote.storage.outbound – [oracle_maven_proxy] Downgrade from HTTPS to HTTP during 301 redirect https://maven.oracle.com/.index/nexus-maven-repository-index.gz -> http://www.oracle.com/webfolder/application/maven/maven-index/nexus-maven-repository-index.gz
2016-11-11 15:17:57 DEBUG [ool-1-thread-19] – remote.storage.outbound – [oracle_maven_proxy] Following 301 redirect https://maven.oracle.com/.index/nexus-maven-repository-index.gz -> http://www.oracle.com/webfolder/application/maven/maven-index/nexus-maven-repository-index.gz
2016-11-11 15:17:57 DEBUG [ar-4-thread-3 ] – remote.storage.outbound – [oracle_maven_proxy] Downgrade from HTTPS to HTTP during 302 redirect https://maven.oracle.com/oam/server/obrareq.cgi?encquery%3DpWVt9LA%2FZO2Zg9oy7%2FfjF6%2Fq7czpe3N0fSfRMalYRxEAG7nZX7uCOfu9%2FH1iUHyykaP0yHYrwXTXljpSaNgubNmx747sXOvhkNhMJhz0%2FdII9KfMspGx41DxkKrd5SfcHIBe0hGXyeDIOj2%2Ff3TdGqo%2Bu%2FZ%2FR5mcbyYh9%2Bx1915udAdYpHtKaAy4k1qmQeGmu9slCaT%2Fzyrob5nhmg27EuXitqn0MaSvGkmwyBT%2ByGG0YSe%2Bi1AXJY%2FGzPUVZCc6uYi7yP4fVtSLHDGP12vXeITC1C8x0XK3M%2BwhisZHVT3oM6a9Qjth59E9LmoUZXWsthrlBY%2F5%2FN0ZjvNo4eGZIlR2s56rwB5W95fpz4VU5e8X%2FJqM%2FuaRm%2FaCwWrw%2FSdJznE8xcmwrDHZInl8A6wiJg%3D%3D%20agentid%3Dwww.oracle.com%20ver%3D1%20crmethod%3D2&ECID-Context=1.005GGSc4oMA2rITYU9q2VO00027m0042D6%3BkXjE -> http://www.oracle.com/obrar.cgi?encreply=GKtOH6%2FbBB3GsPamDX%2Bp6NZ5PPVx%2FPJkm8AkVyxv%2FpxAdksPKea4JeMR%2FUhkYYNQd4%2FNx3lrywqZx0pDR27Ks3RketVRDR4L3ad7zhevgRLcm%2FyYGEMGkI8XkCAHRtKbpNzAEz%2FLkVxeishlCu5w05Xr5HVongbqKcCktbChHp9mljaRSNm5MX%2FjrPIjcfZ%2FzYzioDkLsqz5NeRy78icBe5tkEpJoC9E72M5ldKPZaPveoRNB5nLtZ1n%2BGktCcPsMgqrdQLXSgOdPNQpPPrThWS9B2Hmem8i79iZf949Wcpmr0PElL7%2Fd9KW7bOW8dekuZqskXWSxBkAdeR%2FTSz0T5bv9pHbXZLDkhs7xr3%2FMQ%2FDUmJY%2B7wPv3wXvy%2BZit3Pfc3oEVLL972BQSh9gsnGFfECBehT%2Fl85fRez9T0lM8MlcTSywoREvJ7h59PYyfIQyEGokBKa8FNfX9%2F5Stf0x5UT2icF0E7U0trbdd537RBUQT%2FMLPxnaK3NVY%2BdvI88h3sOFr%2B%2FgioNqJs0uZzaPzXdQ%2FMYZCJ0qaCV%2FHW9hRPxGG%2Bk0mf0NXmqk6LxDgsuYp7NRLUPxRfrb%2BSv2gii%2B8Sgc5it5jX6Ysn%2FQKCuUdX%2BDUzQMgESsWqokyoOrVd6P7cNQ7mGIX3OWAaTJ1K3V9DSWktk8QT1RI3pbIXdoaO%2FA1vzwUCC2zGz0kjJfxK7nkeVW893z%2B8LTvM4L2%2B0BXKCTMD%2Bq2Ld46pPOdC1r4O%2FNpq1QMYhUtmr5kJdrnyP1zIQYUmE4FiEi7wmvO%2FFBjkd8llykErCKSAiAAS5o4WTNdwtce13aYukRkDSyY4wrrnUlkDIpyBVH2zkAlsptibUjpWoQ3oANG6V69ofeyFuun8w1S%2FFD%2BWTmwZiQgAfQN7yEtsWGmYZye5oeAOxAYSNF%2FVv0HZnrm8vFb%2F23tizkU1hVPy1axNrhgOyi%2FWsFPqSdIm8%2BAfgktz0D8yHyc%2FRT2%2BWg5PHHkq%2BiMf9FcmXWAcqkSOQjojb2BNVYWeu%2FeIQScIzNlWexSrYvK75%2FIaXEWdrnarujuVKvysoab6TCHutK81IKl7E1QJ6TpBS
2016-11-11 15:17:57 DEBUG [ar-4-thread-3 ] – remote.storage.outbound – [oracle_maven_proxy] Following 302 redirect https://maven.oracle.com/oam/server/obrareq.cgi?encquery%3DpWVt9LA%2FZO2Zg9oy7%2FfjF6%2Fq7czpe3N0fSfRMalYRxEAG7nZX7uCOfu9%2FH1iUHyykaP0yHYrwXTXljpSaNgubNmx747sXOvhkNhMJhz0%2FdII9KfMspGx41DxkKrd5SfcHIBe0hGXyeDIOj2%2Ff3TdGqo%2Bu%2FZ%2FR5mcbyYh9%2Bx1915udAdYpHtKaAy4k1qmQeGmu9slCaT%2Fzyrob5nhmg27EuXitqn0MaSvGkmwyBT%2ByGG0YSe%2Bi1AXJY%2FGzPUVZCc6uYi7yP4fVtSLHDGP12vXeITC1C8x0XK3M%2BwhisZHVT3oM6a9Qjth59E9LmoUZXWsthrlBY%2F5%2FN0ZjvNo4eGZIlR2s56rwB5W95fpz4VU5e8X%2FJqM%2FuaRm%2FaCwWrw%2FSdJznE8xcmwrDHZInl8A6wiJg%3D%3D%20agentid%3Dwww.oracle.com%20ver%3D1%20crmethod%3D2&ECID-Context=1.005GGSc4oMA2rITYU9q2VO00027m0042D6%3BkXjE -> http://www.oracle.com/obrar.cgi?encreply=GKtOH6%2FbBB3GsPamDX%2Bp6NZ5PPVx%2FPJkm8AkVyxv%2FpxAdksPKea4JeMR%2FUhkYYNQd4%2FNx3lrywqZx0pDR27Ks3RketVRDR4L3ad7zhevgRLcm%2FyYGEMGkI8XkCAHRtKbpNzAEz%2FLkVxeishlCu5w05Xr5HVongbqKcCktbChHp9mljaRSNm5MX%2FjrPIjcfZ%2FzYzioDkLsqz5NeRy78icBe5tkEpJoC9E72M5ldKPZaPveoRNB5nLtZ1n%2BGktCcPsMgqrdQLXSgOdPNQpPPrThWS9B2Hmem8i79iZf949Wcpmr0PElL7%2Fd9KW7bOW8dekuZqskXWSxBkAdeR%2FTSz0T5bv9pHbXZLDkhs7xr3%2FMQ%2FDUmJY%2B7wPv3wXvy%2BZit3Pfc3oEVLL972BQSh9gsnGFfECBehT%2Fl85fRez9T0lM8MlcTSywoREvJ7h59PYyfIQyEGokBKa8FNfX9%2F5Stf0x5UT2icF0E7U0trbdd537RBUQT%2FMLPxnaK3NVY%2BdvI88h3sOFr%2B%2FgioNqJs0uZzaPzXdQ%2FMYZCJ0qaCV%2FHW9hRPxGG%2Bk0mf0NXmqk6LxDgsuYp7NRLUPxRfrb%2BSv2gii%2B8Sgc5it5jX6Ysn%2FQKCuUdX%2BDUzQMgESsWqokyoOrVd6P7cNQ7mGIX3OWAaTJ1K3V9DSWktk8QT1RI3pbIXdoaO%2FA1vzwUCC2zGz0kjJfxK7nkeVW893z%2B8LTvM4L2%2B0BXKCTMD%2Bq2Ld46pPOdC1r4O%2FNpq1QMYhUtmr5kJdrnyP1zIQYUmE4FiEi7wmvO%2FFBjkd8llykErCKSAiAAS5o4WTNdwtce13aYukRkDSyY4wrrnUlkDIpyBVH2zkAlsptibUjpWoQ3oANG6V69ofeyFuun8w1S%2FFD%2BWTmwZiQgAfQN7yEtsWGmYZye5oeAOxAYSNF%2FVv0HZnrm8vFb%2F23tizkU1hVPy1axNrhgOyi%2FWsFPqSdIm8%2BAfgktz0D8yHyc%2FRT2%2BWg5PHHkq%2BiMf9FcmXWAcqkSOQjojb2BNVYWeu%2FeIQScIzNlWexSrYvK75%2FIaXEWdrnarujuVKvysoab6TCHutK81IKl7E1QJ6TpBS
2016-11-11 15:17:58 DEBUG [ar-4-thread-3 ] – remote.storage.outbound – [oracle_maven_proxy] Following 302 redirect http://www.oracle.com/obrar.cgi?encreply=GKtOH6%2FbBB3GsPamDX%2Bp6NZ5PPVx%2FPJkm8AkVyxv%2FpxAdksPKea4JeMR%2FUhkYYNQd4%2FNx3lrywqZx0pDR27Ks3RketVRDR4L3ad7zhevgRLcm%2FyYGEMGkI8XkCAHRtKbpNzAEz%2FLkVxeishlCu5w05Xr5HVongbqKcCktbChHp9mljaRSNm5MX%2FjrPIjcfZ%2FzYzioDkLsqz5NeRy78icBe5tkEpJoC9E72M5ldKPZaPveoRNB5nLtZ1n%2BGktCcPsMgqrdQLXSgOdPNQpPPrThWS9B2Hmem8i79iZf949Wcpmr0PElL7%2Fd9KW7bOW8dekuZqskXWSxBkAdeR%2FTSz0T5bv9pHbXZLDkhs7xr3%2FMQ%2FDUmJY%2B7wPv3wXvy%2BZit3Pfc3oEVLL972BQSh9gsnGFfECBehT%2Fl85fRez9T0lM8MlcTSywoREvJ7h59PYyfIQyEGokBKa8FNfX9%2F5Stf0x5UT2icF0E7U0trbdd537RBUQT%2FMLPxnaK3NVY%2BdvI88h3sOFr%2B%2FgioNqJs0uZzaPzXdQ%2FMYZCJ0qaCV%2FHW9hRPxGG%2Bk0mf0NXmqk6LxDgsuYp7NRLUPxRfrb%2BSv2gii%2B8Sgc5it5jX6Ysn%2FQKCuUdX%2BDUzQMgESsWqokyoOrVd6P7cNQ7mGIX3OWAaTJ1K3V9DSWktk8QT1RI3pbIXdoaO%2FA1vzwUCC2zGz0kjJfxK7nkeVW893z%2B8LTvM4L2%2B0BXKCTMD%2Bq2Ld46pPOdC1r4O%2FNpq1QMYhUtmr5kJdrnyP1zIQYUmE4FiEi7wmvO%2FFBjkd8llykErCKSAiAAS5o4WTNdwtce13aYukRkDSyY4wrrnUlkDIpyBVH2zkAlsptibUjpWoQ3oANG6V69ofeyFuun8w1S%2FFD%2BWTmwZiQgAfQN7yEtsWGmYZye5oeAOxAYSNF%2FVv0HZnrm8vFb%2F23tizkU1hVPy1axNrhgOyi%2FWsFPqSdIm8%2BAfgktz0D8yHyc%2FRT2%2BWg5PHHkq%2BiMf9FcmXWAcqkSOQjojb2BNVYWeu%2FeIQScIzNlWexSrYvK75%2FIaXEWdrnarujuVKvysoab6TCHutK81IKl7E1QJ6TpBS -> /content/secure/maven/content/.meta/prefixes.txt
2016-11-11 15:17:58 DEBUG [ool-1-thread-19] – remote.storage.outbound – [oracle_maven_proxy] GET https://maven.oracle.com/.index/nexus-maven-repository-index.gz -> HTTP/1.1 200 OK; 1.563 s
2016-11-11 15:17:58 DEBUG [ar-4-thread-3 ] – remote.storage.outbound – [oracle_maven_proxy] Protocol upgrade during 301 redirect on same host http://www.oracle.com/content/secure/maven/content/.meta/prefixes.txt -> https://www.oracle.com/content/secure/maven/content/.meta/prefixes.txt
2016-11-11 15:17:58 DEBUG [ar-4-thread-3 ] – remote.storage.outbound – [oracle_maven_proxy] Following 301 redirect http://www.oracle.com/content/secure/maven/content/.meta/prefixes.txt -> https://www.oracle.com/content/secure/maven/content/.meta/prefixes.txt
2016-11-11 15:17:59 DEBUG [ar-4-thread-3 ] – remote.storage.outbound – [oracle_maven_proxy] HEAD https://maven.oracle.com/.meta/prefixes.txt -> HTTP/1.1 404 Not Found; 4.489 s
2016-11-11 15:17:59 DEBUG [ar-4-thread-3 ] – remote.storage.outbound – [oracle_maven_proxy] GET https://maven.oracle.com/.meta/prefixes.txt
2016-11-11 15:18:00 DEBUG [ar-4-thread-3 ] – remote.storage.outbound – [oracle_maven_proxy] Following 301 redirect https://maven.oracle.com/.meta/prefixes.txt -> https://www.oracle.com/content/secure/maven/content/.meta/prefixes.txt
2016-11-11 15:18:01 DEBUG [ar-4-thread-3 ] – remote.storage.outbound – [oracle_maven_proxy] GET https://maven.oracle.com/.meta/prefixes.txt -> HTTP/1.1 404 Not Found; 1.038 s
2016-11-11 15:18:01 INFO [ar-4-thread-3 ] – org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientManagerImpl – Allowing circular redirects in proxy M2Repository(id=oracle_maven_proxy)
2016-11-11 15:18:01 INFO [ar-4-thread-3 ] – org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientManagerImpl – Allowing cookie use in proxy M2Repository(id=oracle_maven_proxy)
2016-11-11 15:18:01 DEBUG [ar-4-thread-3 ] – remote.storage.outbound – [oracle_maven_proxy] Downgrade from HTTPS to HTTP during 301 redirect https://maven.oracle.com/ -> http://www.oracle.com/webfolder/application/maven/index.html
2016-11-11 15:18:01 DEBUG [ar-4-thread-3 ] – remote.storage.outbound – [oracle_maven_proxy] Following 301 redirect https://maven.oracle.com/ -> http://www.oracle.com/webfolder/application/maven/index.html
2016-11-11 15:18:01 INFO [ar-4-thread-3 ] – org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientManagerImpl – Allowing circular redirects in proxy M2Repository(id=oracle_maven_proxy)
2016-11-11 15:18:01 INFO [ar-4-thread-3 ] – org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientManagerImpl – Allowing cookie use in proxy M2Repository(id=oracle_maven_proxy)
2016-11-11 15:18:02 DEBUG [ar-4-thread-3 ] – remote.storage.outbound – [oracle_maven_proxy] Downgrade from HTTPS to HTTP during 301 redirect https://maven.oracle.com/ -> http://www.oracle.com/webfolder/application/maven/index.html
2016-11-11 15:18:02 DEBUG [ar-4-thread-3 ] – remote.storage.outbound – [oracle_maven_proxy] Following 301 redirect https://maven.oracle.com/ -> http://www.oracle.com/webfolder/application/maven/index.html
2016-11-11 15:18:02 INFO [ar-4-thread-3 ] – org.sonatype.nexus.proxy.maven.routing.internal.RemoteScrapeStrategy – Not possible remote scrape of M2Repository(id=oracle_maven_proxy), no scraper succeeded.
2016-11-11 15:18:06 INFO [ool-1-thread-19] – org.sonatype.nexus.index.DefaultIndexerManager – Remote indexes updated successfully for repository “oracle_maven_proxy” [id=oracle_maven_proxy]
2016-11-11 15:18:06 INFO [ool-1-thread-19] – org.sonatype.nexus.index.NexusScanningListener – Scanning of repositoryID=”oracle_maven_proxy” started.
2016-11-11 15:18:06 INFO [ool-1-thread-19] – org.sonatype.nexus.index.NexusScanningListener – Scanning of repositoryID=”oracle_maven_proxy” finished: scanned=0, added=0, updated=0, removed=0, scanningDuration=0:00:00.695
2016-11-11 15:18:07 INFO [ool-1-thread-19] – org.sonatype.nexus.index.DefaultIndexerManager – Publishing index for repository oracle_maven_proxy
2016-11-11 15:18:08 INFO [ool-1-thread-19] – org.sonatype.nexus.index.tasks.UpdateIndexTask – Scheduled task (UpdateIndexTask) finished :: Updating repository index “oracle_maven_proxy” from path null and below. (started 2016-11-11T15:17:55+01:00, runtime 0:00:13.635)
2016-11-11 15:18:08 INFO [ool-1-thread-19] – org.sonatype.nexus.configuration.application.DefaultNexusConfiguration – Applying Nexus Configuration due to changes in [Scheduled Tasks] made by *TASK…
2016-11-11 15:18:11 INFO [pool-1-thread-3] – org.sonatype.nexus.index.tasks.UpdateIndexTask – Scheduled task (UpdateIndexTask) started :: Updating repository index “oracle_maven_proxy” from path / and below.
2016-11-11 15:18:12 INFO [pool-1-thread-3] – org.sonatype.nexus.index.DefaultIndexerManager – Trying to get remote index for repository “oracle_maven_proxy” [id=oracle_maven_proxy]
2016-11-11 15:18:12 DEBUG [pool-1-thread-3] – remote.storage.outbound – [oracle_maven_proxy] GET https://maven.oracle.com/.index/nexus-maven-repository-index.properties
2016-11-11 15:18:12 DEBUG [pool-1-thread-3] – remote.storage.outbound – [oracle_maven_proxy] Downgrade from HTTPS to HTTP during 301 redirect https://maven.oracle.com/.index/nexus-maven-repository-index.properties -> http://www.oracle.com/webfolder/application/maven/maven-index/nexus-maven-repository-index.properties
2016-11-11 15:18:12 DEBUG [pool-1-thread-3] – remote.storage.outbound – [oracle_maven_proxy] Following 301 redirect https://maven.oracle.com/.index/nexus-maven-repository-index.properties -> http://www.oracle.com/webfolder/application/maven/maven-index/nexus-maven-repository-index.properties
2016-11-11 15:18:12 DEBUG [pool-1-thread-3] – remote.storage.outbound – [oracle_maven_proxy] GET https://maven.oracle.com/.index/nexus-maven-repository-index.properties -> HTTP/1.1 200 OK; 661.9 ms
2016-11-11 15:18:12 INFO [pool-1-thread-3] – org.sonatype.nexus.index.DefaultIndexerManager – Remote indexes unchanged (no update needed) for repository “oracle_maven_proxy” [id=oracle_maven_proxy]
2016-11-11 15:18:12 INFO [pool-1-thread-3] – org.sonatype.nexus.index.NexusScanningListener – Scanning of repositoryID=”oracle_maven_proxy” started.
2016-11-11 15:18:13 INFO [pool-1-thread-3] – org.sonatype.nexus.index.NexusScanningListener – Scanning of repositoryID=”oracle_maven_proxy” finished: scanned=0, added=0, updated=0, removed=0, scanningDuration=0:00:00.810
2016-11-11 15:18:13 INFO [pool-1-thread-3] – org.sonatype.nexus.index.DefaultIndexerManager – Publishing index for repository oracle_maven_proxy
2016-11-11 15:18:14 INFO [pool-1-thread-3] – org.sonatype.nexus.index.tasks.UpdateIndexTask – Scheduled task (UpdateIndexTask) finished :: Updating repository index “oracle_maven_proxy” from path / and below. (started 2016-11-11T15:18:11+01:00, runtime 0:00:02.591)
2016-11-11 15:18:14 INFO [pool-1-thread-3] – org.sonatype.nexus.configuration.application.DefaultNexusConfiguration – Applying Nexus Configuration due to changes in [Scheduled Tasks] made by *TASK…
2016-11-11 15:19:10 DEBUG [tp2714330-28670] – remote.storage.outbound – [oracle_maven_proxy] GET https://maven.oracle.com/com/oracle/soa/plugin/oracle-soa-plugin/12.1.3-0-0/oracle-soa-plugin-12.1.3-0-0.jar
2016-11-11 15:19:10 DEBUG [tp2714330-28670] – remote.storage.outbound – [oracle_maven_proxy] Following 301 redirect https://maven.oracle.com/com/oracle/soa/plugin/oracle-soa-plugin/12.1.3-0-0/oracle-soa-plugin-12.1.3-0-0.jar -> https://www.oracle.com/content/secure/maven/content/com/oracle/soa/plugin/oracle-soa-plugin/12.1.3-0-0/oracle-soa-plugin-12.1.3-0-0.jar
2016-11-11 15:19:11 DEBUG [tp2714330-28670] – remote.storage.outbound – [oracle_maven_proxy] GET https://maven.oracle.com/com/oracle/soa/plugin/oracle-soa-plugin/12.1.3-0-0/oracle-soa-plugin-12.1.3-0-0.jar -> HTTP/1.1 200 OK; 1.631 s
2016-11-11 15:19:11 DEBUG [tp2714330-28670] – remote.storage.outbound – [oracle_maven_proxy] GET https://maven.oracle.com/com/oracle/soa/plugin/oracle-soa-plugin/12.1.3-0-0/oracle-soa-plugin-12.1.3-0-0.jar.sha1
2016-11-11 15:19:12 DEBUG [tp2714330-28670] – remote.storage.outbound – [oracle_maven_proxy] Following 301 redirect https://maven.oracle.com/com/oracle/soa/plugin/oracle-soa-plugin/12.1.3-0-0/oracle-soa-plugin-12.1.3-0-0.jar.sha1 -> https://www.oracle.com/content/secure/maven/content/com/oracle/soa/plugin/oracle-soa-plugin/12.1.3-0-0/oracle-soa-plugin-12.1.3-0-0.jar.sha1
2016-11-11 15:19:12 DEBUG [tp2714330-28670] – remote.storage.outbound – [oracle_maven_proxy] GET https://maven.oracle.com/com/oracle/soa/plugin/oracle-soa-plugin/12.1.3-0-0/oracle-soa-plugin-12.1.3-0-0.jar.sha1 -> HTTP/1.1 200 OK; 1.221 s

[/code]

When we try to index the repository it tries to downloaded serveral files.
[code language=”xml”]
https://maven.oracle.com/.index/nexus-maven-repository-index.properties
[/code]
* no secure url, this will just download without authentication

[code language=”xml”]
https://maven.oracle.com/content/secure/maven/content/.meta/prefixes.txt
[/code]
* secure part, we will get redirected to “https://login.oracle.com:443/oam/server/obrareq.cgi”
* the login will redirect us back and the cookie is set

From now on the cookie is set and we can remotely retrieve artifacts which will get locally stored in our nexus.
Basically the repository is ready to remotely retrieve any artifacts which are stored in the Oracle Maven repository.

Since we haven’t touched any of the artifacts yet, none are currently stored locally.
blog_nexus_uncached_file
* oracle-soa-plugin is not cached yet

Let’s try to deploy one of our composites
[code language=”xml”]
exectue mvn com.oracle.soa.plugin:oracle-soa-plugin:deploy
[/code]

And check the Nexus logging again :
[code language=”xml”]
[oracle_maven_proxy] GET https://maven.oracle.com/com/oracle/soa/plugin/oracle-soa-plugin/12.1.3-0-0/oracle-soa-plugin-12.1.3-0-0.jar
[/code]
blog_nexus_cached_file
* oracle-soa-plugin is cached

When we download this file you will noticed we won’t get redirect to the login again.

In the nexus.properties file we configured 2 settings, see : https://support.sonatype.com/hc/en-us/articles/213465728-How-to-configure-a-proxy-repository-to-maven-oracle-com
this is the logging output of these
[code language=”xml”]
2016-11-11 15:18:01 INFO [ar-4-thread-3 ] – org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientManagerImpl – Allowing circular redirects in proxy M2Repository(id=oracle_maven_proxy)
2016-11-11 15:18:01 INFO [ar-4-thread-3 ] – org.sonatype.nexus.proxy.storage.remote.httpclient.HttpClientManagerImpl – Allowing cookie use in proxy M2Repository(id=oracle_maven_proxy)
[/code]

The authentication failure

We delete indexes of (some) of our repositories on daily base, and last week we noticed our builds were failing because it couldn’t retrieve dependencies related to the oracle-soa-plugin.
Since we didn’t change anything buildscript-related or account-related, we had to look at the loggings of Nexus to see why it wasn’t able to retrieve files.

The logging showed a valid login, a valid redirect and when i tried the redirect url in my own browser i was just able to download the file. For some reason Nexus wasn’t able to download the file and store it locally.
Looking at the jira issue, Oracle changed something at there site related to the basic authentication.

End of story, we lost time trying to find out what could be wrong at our site, Oracle fixed it at there site and our Nexus is massively retrieving bytes again ๐Ÿ˜‰

links :
https://support.sonatype.com/hc/en-us/articles/213465728-How-to-configure-a-proxy-repository-to-maven-oracle-com
https://issues.sonatype.org/browse/NEXUS-11467
https://blogs.oracle.com/WebLogicServer/entry/sonatype_nexus_2_11_2
http://www.oracle.com/webfolder/application/maven/index.html
http://docs.oracle.com/middleware/1213/core/MAVEN/config_maven_repo.htm#MAVEN9012

bpel, oracle, soasuite

Oracle Composite – leftover oramds imports

On designtime we use the oramds to develop our processflows in our bpel processes.

Basically the composite.xml part for a bpel process would look like this :
[code language=”xml”]






[/code]

<component name="saveEmployee" version="1.0">
    <implementation.bpel src="BPEL/saveEmployee.bpel"/>
    <componentType>
      <service name="client_ep" ui:wsdlLocation="oramds:/apps/xsd/myapp/1.0/saveEmployee.wsdl">
        <interface.wsdl interface="http://mynamespace.nl/saveEmployee#wsdl.interface(bewaarB2bEmployeeServicePort)"/>
      </service>   

When you open the bpel in jdeveloper, jdeveloper will automatically add the next import to your .bpel file :
[code language=”xml”]

[/code]

The value from the ui:wsdlLocation-attribute is copied to the import/@location.
The ui:* attribute would suggest it’s only used for ui-related things (like the development in jdeveloper).

When we manually remove the whole import-element from the .bpel file and try a redeployment it will just deploy the composite. On runtime the service will also complete in a valid way so the import in the .bpel file is only used on designtime and not on runtime.

To have one central place for publishing artifacts and make them available for other interested parties (in our case other internal applications), we expose them by using a simple apache http server.

So in this case the uri “oramds:/apps/xsd/myapp/1.0/saveEmployee.wsdl” would also be retrievable at “htp://myapacheserver.nl/xsd/myapp/1.0/saveEmployee.wsdl”.

Since we only use the mds on designtime and use the apache location at runtime in the whole otap we need a simple cfgplan to change the locations in the artifacts.
When we generate a sample cfgplan (rightmouseclick on the composite.xml > Generate config plan), we will notice the .bpel file artifacts won’t get customized
The wsdlAndSchema section lists all the wsdls, schemas and jca files but no bpel files.
[code language=”xml”]





oramds:/apps/xsd
htp://myapacheserver.nl/xsd





oramds:/apps/xsd
htp://myapacheserver.nl/xsd



[/code]

When we look in the logfiles we see some errors coming by.
[code language=”java”]
info.log:[2016-02-25T16:58:01.928+01:00] [xxx-MS1] [WARNING] [] [oracle.fabric.common.wsdl] [tid: 127] [userId: weblogic] [ecid: 40869563-6b99-4a25-81a5-ed030a64e4df-00000001,0:2] [APP: soa-infra] Initial loading of WSDL at oramds://apps/xsd/myapp/1.0/saveEmployee.wsdl failed due to: Error in getting XML input stream: oramds:/apps/xsd/myapp/1.0/saveEmployee.wsdl: oracle.mds.exception.MDSException: MDS-00054: The file to be loaded /apps/xsd/myapp/1.0/saveEmployee.wsdl does not exist.. Will retry the load using the metadata manager associated with the composite..
[/code]

So although the bpel itself just works it does try to resolve the oramds imports in the .bpel file (since those aren’t customized and still use oramds imports instead of http imports).

To remove the import from the bpel we use the the maven-antrun-plugin and the xmltask in ant to edit the .bpel file at the prepare-package phase.
[code language=”xml”]
org.apache.maven.plugins
maven-antrun-plugin
1.7


com.oopsconsultancy
xmltask
1.16


xalan
xalan
2.7.1



prepare-package
run













[/code]

We added the plugin to a parent pom so it will be active for all composite projects.
Since we also use some embedded java in the processes the xpath match should be on “//*[local-name()=’import’][@importType=’http://schemas.xmlsoap.org/wsdl/’]”.
Imports like
[code language=”xml”]

[/code]
won’t be removed.

fusion11g, oracle, soasuite

Error deploying Oracle Composite with wrong encoding wsdl

We had some issues with deploying a composite which retrieves his wsdl for the partnerlinks from Nexus.
The supplier of the services adds the archive with the wsdl artifacts in Nexus, we download the dependency and after that we compile/validate the composite against the downloaded set of artifacts.

For one particular partnerlink the composite just wouldn’t compile.

Error message :

[code language=”xml”]
Validating composite “c:\Repos\composites\mydomainobject\MyService\composite.xml”
c:\Repos\composites\mydomainobject\MyService\composite.xml:21: error: Load of wsdl “oramds:/apps/xsd/nextgen/gm/services/mydomainobject/2/myservice.wsdl” failed
c:\Repos\composites\mydomainobject\MyService\composite.xml:44: error: Cannot find Port Type “{http://ibx.nl/gm/services/mydomainboject/2}MyServicePortType” for “Service1” in WSDL Manager
c:\Repos\composites\mydomainobject\MyService\composite.xml:44: warning: Failed to Find Binding “Service1″:”{http://ibx.nl/gm/services/mydomainboject/2}MyServicePortType” in WSDL Manager
c:\Repos\composites\mydomainobject\MyService\composite.xml:44: warning: Failed to Find Binding “Service1″:”{http://ibx.nl/gm/services/mydomainboject/2}MyServicePortType” in WSDL Manager
c:\Repos\composites\mydomainobject\MyService\composite.xml:30: error: Cannot find Port Type “{http://ibx.nl/gm/services/mydomainboject/2}MyServicePortType” for “Service1” in WSDL Manager
c:\Repos\composites\mydomainobject\MyService\composite.xml:63: error: Cannot find Port Type “{http://ibx.nl/gm/services/mydomainboject/2}MyServicePortType” for “Mediator” in WSDL Manager
c:\Repos\composites\mydomainobject\MyService\composite.xml:63: error: Cannot find Port Type “{http://ibx.nl/gm/services/mydomainboject/2}MyServicePortType” for “Service1” in WSDL Manager
[/code]

After recreating the partnerlink over and over again we thought the wsdl for it just looked valid. After selecting the wsdl when we create the partnerlink it also parses the operations correctly, so it looks valid.
The error message is a bit misleading.

Eventually we noticed the encoding of the wsdl itself was changed from ANSI to UTF-8.

Change the encoding back to ANSI (Notepad++), refresh mds, recreate the partnerlink and compile the composite and we have one happy composite again.

soa, soasuite

Altova XMLSpy, testing custom functions in xsl transformations

In our middleware solutions (Oracle SOA Suite) we use a lot of xsl transformations.
Part of these transformations use database backend systems to do lookups for transforming internal values to external values (which can then be communicated to the customers).

In the Oracle SOA Suite you can create custom xsl function and store the jar in the domain/lib folder and then you will be able to use it in the xsl transformations.

We use Altova XMLSpy a lot for creating all these xsl transformations. To be able to test these custom functions in the xsl transformations you use the next in the xsl files to be able to execute the custom functions from within XMLSpy.

Simple example of how to call a java method to uppercase a string.
[code language=”java”]
package nl.xenta.xsl;

public class Helper {
public Helper() {
}

public static String formatName(String input) {
return input.toUpperCase();
}
}
[/code]

And the xsl transformation calling the formatName method
[code language=”xml”]









[/code]

Use “java:” to add the jar file to the xsl.

Now we can test the xsl transformation without deploying the bpel with the transformation first and test it on runtime.

Uncategorized

Oracle BPEL, retrieving the validate activity fault message

The ‘Validate’ activity in Oracle BPEL gives us the functionality to validate variables again schema definitions.
When using it in your bpel process you will get a nice informative message in the ‘Flow trace’.

validate1

When you’re using some generic error hospital functionality you also want this message to be available in there.
First try would be, add a Scope around the activity and catch the ‘invalidVariables’ System Fault.

When using a getFaultString on the fault variable or after assigning it to your own fault variable you will see the fault stack will be empty
validate2

[sourcecode language=”xml”]


[/sourcecode]

Because of some bug in the engine you won't be able to get a handle to the fault message.

To be able to retrieve the fault message do the next.
Create a mediator in the composite based on a wsdl/operation which you 'represent' the element you're trying to validate.

If you have a variable in your process like this :
variable name="myEmployee" messageType="emp:myEmployeeMessage"
or
variable name="myEmployee" element="emp:myEmployeeRef"

Then also create/use a wsdl which exposes an operation with the same messagetype/element in it.

In certain situations you will be validating an element which isn't available directly in some operation in some wsdl (for example when you validate against an element which is only defined in a canonical xsd definition).
In that case just create a dummy wsdl/operation and use the element-definition in there, make sure you use the same namespace-structure.

Create the mediator based on this wsdl.
validate4

In the mediator enable the validateSchema option (true)
[sourcecode language="xml"]



[/sourcecode]

We won't be defining any routing rules, we just need the operation to validate the input and that's it.
When the input isn't validate it will trigger a remote fault which we will catch in our bpel process.

Instead of using the validate-activity, create an invoke to the mediator partnerlink.

validate3

As you can see, we now receive a fault stack back which includes our validation message.

The bpel will looking something like this :
validate5

The remote fault will be thrown by the mediator, in the second scope we now catch the remote fault instead of the invalid variables fault, and this fault variable does contain the information we need.

download : ValidateProject.zip

Uncategorized

Oracle JCA Database adapter and performance win on big clobs

In a few of our services in bpel and osb we’re inserting a lot of data (big payload messages) into the database by use of the jca db adapter.
We noticed performance would drop hugely when the db adapter needed to insert big payloads (CLOBS) and when the stream of messages on these services would continue even more performance would dramastically go down on the system.

After disabling “wrap data types” on the datasource in Weblogic we had a pretty good performance win on processing big clob messages into the database.

To disable wrapping of data type objects do the next :

  • Login the Weblogic Console
  • Click yourdomain > Services > Data Sources > your_datasource > Connection Pool > Advanced > disable Wrap Data Types

See this (Oracleยฎ Fusion Middleware Configuring and Managing JDBC Data Sources for Oracle WebLogic Server 11g Release 1 (10.3.5) > 10 Tuning Data Source Connection Pools) document for extra information of the exact benefits of enabling/disabled the option

weblogic