OSB (ALSB) to implement a Resequencer? (EIP Pattern)

Hello *,
has somebody ever tried to implement using OSB (BEA ALSB) the Resequencer EIP Pattern (Hohpe, Woolf)?
http://www.enterpriseintegrationpatterns.com/Resequencer.html
Generally I wonder how the OSB product concept maps to the EIP Patterns. Are there some guidelines for scenarios like Splitter/Aggregator , Enricher/Filter, etc.?
my customer want's to implement at least the Resequence and Splitter. Any tips are very welcome here!!
grtx,
\thomas

Hi Thomas,
Depending on your exact requirement for your Resequencer you may be able to use the underlying WebLogic JMS Unit of Order to get this. Read more here:
http://download-llnw.oracle.com/docs/cd/E11035_01/wls100/jms/uoo.html
With regards the other patterns, OSB supports all the ones you mention:
Splitter/Aggregator - use the split/join functionality described here:
http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/userguide/splitjoin.html
Enricher - this can be achieved in a number of ways depending on where you are getting your enrichment data from. Service callouts allow you to invoke a service from within the proxy message flow, Java callouts allows you to implement Java code, and there is an XQuery function to allow you to read content from a database (note in the next release of OSB we will have support for the Oracle database adapter and so will have richer functionality here)
Filter - again this depends on the exact requirement but there are a number of options here including routing tables, if/then capability, operational branching, etc.
Hope that is useful.
Chris

Similar Messages

  • OSB (ALSB) Logging Redirect

    Hi all,
    how to redirect all the OSB(ALSB) related message logs ( Errors and transport exceptions included ) to a log4j custom file.
    Now, given this discussion:
    alsb logging
    The way to go is, apparently, to
    1. create filters at domain level by subsystem (or context_id or whatever else)
    2. create a startup class to catch all log messages and to filter in only those ones you are interested in using, in your filter class, filters like " startsWith("ALSB)) " (equivalent of domain filter "Subsystem LIKE ALSB% " )
    Now given all the following list of OSB (ALSB) related subsystems
    http://download.oracle.com/docs/cd/E13159_01/osb/docs10gr3/messages/indexa.html
    *Is there a better approach then creating a filter class per each subsystem ?*
    Regards,
    Tony P.

    There doesn't seem to be 64bit version of OSB at all for Windows. [http://download.oracle.com/docs/cd/E13196_01/platform/suppconfigs/configs_al10gr3/osb10gr3/overview.html]

  • SOA suit 11g uses both ESB and OSB(ALSB)

    Hi, I am newbie to SOA suit 11g. Can somebody please explain the use of ESB and OSB(ALSB) both in SOA 11g.In SOA 11g ESB is being used only for mediation.Even OSB(ALSB) has same capability.Then why both needs to be used?Can't we use one of these?
    ~Pradeep

    hello Pradeep,
    there is quite some literature on this hot topic - actually it's one of the most frequently asked question from people who are using OSB and Soa Suite.
    if you google "OSB vs Mediator" you will find some useful links:
    http://www.scribd.com/doc/23622536/Oracle-SOA-Suite-11g-Mediator-vs-Oracle-Service-Bus-OSB
    SOA SUITE 11g - Mediator & OSB
    http://oracle-fusion-blogs.com/oracle-fusion-osb-mediator/
    and so on....

  • Support of exslt in OSB/ALSB

    Hi,
    Does OSB/ALSb support extended xslt functions i.e exslt(http://exslt.org/functions)?
    When I tried to import/save an xslt having exslt functions, it gives an error
    An error occurred compiling the XSLT template: javax.xml.transform.TransformerException: weblogic.apache.xml.utils.WrappedRuntimeException: Could not find variable with the name of val.
    and the function is defined in xsl as :
    <func:function name="ctvf:convertToNumber">
    <xsl:param name="val"/>
    <xsl:variable name="strVal" select="string($val)"/>
    <xsl:choose>
    <xsl:when test="$strVal = 'NaN'">
    <func:result select="''"/>
    </xsl:when>
    <xsl:otherwise>
    <func:result select="$strVal"/>
    </xsl:otherwise>
    </xsl:choose>
    </func:function>
    where namespaces in the header are as:
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:func="http://exslt.org/functions"
    Thanks,
    Rajesh

    Hi all!
    Thanx for the answers! I have tried in the past the /text() I tried it again and didn´t worked, some body knows how can I post some screen shots so you can see that I´m using the /text() and maybe with the screen shot you can detect something, also I´m loging the $body in the default branch(cause it is not detecting the value between the tags it goes directly to the Defaul Branch) you will se some differences in the XML since I simplified the XML to make the example and tested this simplified XML it in the TEST Tool in the console and had the same results that with the original evendough I put the /text() at the end
    Here is the Body I loged in the default Branch:
    <soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <imp:iniciarCambio xmlns:imp="http://bea.com/albpm/MMME/ImpactarCambiosClienteBILLING">
    <cambios xmlns:bea="http://bea.com/">
    <bea:ListaDeCambios>
    <!--1 or more repetitions:-->
    <bea:Cambio>
    <bea:campoNombre>Cambio1</bea:campoNombre>
    <bea:valorAnterior>antes</bea:valorAnterior>
    <bea:valorNuevo>despues</bea:valorNuevo>
    </bea:Cambio>
    </bea:ListaDeCambios>
    <bea:companiaId>32</bea:companiaId>
    <bea:companiaNombre>MMRedes</bea:companiaNombre>
    <bea:companiaTipo>Servicio</bea:companiaTipo>
    </cambios>
    </imp:iniciarCambio>
    </soapenv:Body>>
    as you can see it is Servicio and it should have gone to one of the branches instead of the default but it didn´t
    Can´t see what I´m doing wrong, but maybe some of you can.
    Thanx in advanced!
    Gerardo J

  • OSB - ALSB / WLST / Security / add entry with WLST in  Access Control

    Hello,
    I try to reproduce with WLST script the input from the consol to declare user on Access Control proxy (security).
    sbconsol->$Proxy Service->Security->General Confiruration->Access Control->Transport Access Control->Add Conditions
    * First implementation without success with the com.bea.wli.sb.security.management.configuration.ServiceSecurityConfigurationMBean : accessControlSecurity1()
    * Second try with the service definition of the proxy service but cannot parse with Xpath accessControl Security2()
    any idee ???
    test case :
    prerequisit
    create an ALSB domain 10.3 (admin one with username='weblogic' password='weblogic' url='t3://localhost:7001') and create a proxy service on the default project
    conf/setEnv.cmd
    @CLS
    @echo ON
    @set BEA_HOME=D:\PRODUCT\MIDDLEWARE\SOA\OSB_10.3
    @set WL_HOME=%BEA_HOME%\wlserver_10.3
    @set OSB_HOME=%BEA_HOME%\osb_10.3
    @set SCRIPTING_HOME=E:\PROJETS\RECURANT\EDF\linky\WLST\WORKING\Security
    @set OSB_LIB=%OSB_HOME%/lib/sb-kernel-api.jar;%BEA_HOME%/modules/com.bea.alsb.statistics_1.0.1.0.jar;%OSB_HOME%/lib/sb-kernel-resources.jar;%OSB_HOME%/lib/sb-kernel-common.jar;%OSB_HOME%/lib/sb-kernel-impl.jar;%OSB_HOME%\lib\sb-security.jar;%OSB_HOME%/modules/com.bea.common.configfwk_1.3.0.0.jar;%BEA_HOME%/modules/com.bea.common.configfwk_1.2.0.0.jar;%BEA_HOME%/modules/com.bea.common.configfwk_1.2.1.0.jar;%OSB_HOME%/lib/modules/com.bea.alsb.resources.archive.jar;
    @set TOOL_LIB=%SCRIPTING_HOME%\lib\log4j-1.2.15.jar;%SCRIPTING_HOME%\lib\jsch-0.1.43.jar;%SCRIPTING_HOME%\lib\db2jcc.jar
    @set CLASSPATH=%OSB_LIB%;%TOOL_LIB%;%CLASSPATH%
    @set CLASSPATH=%SCRIPTING_HOME%\lib\db2jcc.jar;%TOOL_LIB%;%CLASSPATH%
    @set MODULE_LIB=%SCRIPTING_HOME%\lib
    @call %WL_HOME%\server\bin\setWLSEnv.cmd > nul 2<&1
    launch.cmd
    @CLS
    @echo OFF
    @SETLOCAL
    @call "conf\setEnv.cmd" > nul 2<&1
    set PWD=%~dp0
    %JAVA_HOME%\bin\java -Dmodule.lib=%MODULE_LIB% weblogic.WLST -skipWLSModuleScanning lib/security.py
    lib/security.py
    from com.bea.wli.monitoring import StatisticType
    from java.util import HashMap
    from java.util import HashSet
    from java.util import ArrayList
    from java.util import Collections
    from java.io import FileInputStream
    from java.io import FileOutputStream
    from java.lang import String
    from java.lang import Boolean
    from com.bea.wli.sb.util import EnvValueTypes
    from com.bea.wli.config.env import EnvValueQuery;
    from com.bea.wli.config import Ref
    from com.bea.wli.config.customization import Customization
    from com.bea.wli.config.customization import EnvValueCustomization
    from com.bea.wli.config.customization import FindAndReplaceCustomization
    from com.bea.wli.sb.management.configuration import SessionManagementMBean
    from com.bea.wli.sb.management.configuration import ALSBConfigurationMBean
    from com.bea.wli.sb.management.query import BusinessServiceQuery
    from com.bea.wli.sb.management.query import ProxyServiceQuery
    from com.bea.wli.sb.management.configuration import ServiceConfigurationMBean
    import os
    # before, create an ALSB domain 10.3 with a proxy service in the default project and add an Acces Control Policy in the consol
    # sbconsol->Project Explorer->default->${proxy service}->Security->Access Control->Create Session->Add Conditions->User->USR_1->Add
    # when we try to modify the Acces Control Policy of the proxy service with the ServiceSecurityConfigurationMBean
    def accessControlSecurity1( domain_name ):
              # connection
              print "\n\n\n***********************************************************************************************"
              connect( 'weblogic', 'weblogic', 't3://localhost:7001')
              domainRuntime()
              # create a session
              sessionName = String("SessionScript"+Long(System.currentTimeMillis()).toString())
              SessionMBean = findService( SessionManagementMBean.NAME ,SessionManagementMBean.TYPE)
              SessionMBean.createSession(sessionName)
              # get the ServiceSecurityConfigurationMBean
              serviceSecurityConfigurationMBean = findService(String("ServiceSecurityConfiguration.").concat(sessionName), "com.bea.wli.sb.security.management.configuration.ServiceSecurityConfigurationMBean")
              # get the XACMLAuthorizer
              working_directory=pwd()
              serverConfig()
              xacmlAuthorizer = cd('/SecurityConfiguration/%s/Realms/myrealm/Authorizers/XACMLAuthorizer' % domain_name )
              cd(working_directory)
              domainRuntime()
              # get service ref
              ConfigurationMBean = findService(String("ALSBConfiguration.").concat(sessionName), "com.bea.wli.sb.management.configuration.ALSBConfigurationMBean")
              bsQuery = ProxyServiceQuery()
              bsQuery.setPath("default/*")
              refs = ConfigurationMBean.getRefs(bsQuery)
              for ref in refs:
                   print 'ref=%s'%ref               
                   # use the security Mbean to add : USER_A,USER_B,USER_C to the policy
                   policyHolder = serviceSecurityConfigurationMBean.newAccessControlPolicyHolderInstance(xacmlAuthorizer)
                   policyHolder.setPolicyExpression("Usr(USER_A,USER_B,USER_C)")     
                   policyScope = serviceSecurityConfigurationMBean.newDefaultMessagePolicyScope(ref)
                   serviceSecurityConfigurationMBean.setAccessControlPolicy(policyScope,policyHolder)
                   # print the service definition
                   servConfMBean = findService( "%s.%s" % (ServiceConfigurationMBean.NAME, sessionName), ServiceConfigurationMBean.TYPE)
                   serviceDefinition = servConfMBean.getServiceDefinition(ref)
                   print serviceDefinition
                   # we can see the security entry in the service definition has follow
                   # <xml-fragment xmlns:ser="http://www.bea.com/wli/sb/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tran="http://www.bea.com/wli/sb/transports" xmlns:env="http://www.bea.com/wli/config/env">
                   # <ser:coreEntry isProxy="true" isEnabled="true" isAutoPublish="false">
                   # <ser:description/>
                   # <ser:security>
                   # <con:access-control-policies xmlns:con="http://www.bea.com/wli/sb/services/security/config">
                   # <con:message-level-policies>
                   # <con1:default-policy xsi:type="con:ProviderPolicyContainerType" xmlns:con="http://www.bea.com/wli/sb/security/accesscontrol/config" xmlns:con1="http://www.bea.com/wli/sb/services/security/config">
                   # <con:policy provider-id="XACMLAuthorizer">
                   # <con:policy-expression>Usr(USER_A,USER_B,USER_C)</con:policy-expression>
                   # </con:policy>
                   # </con1:default-policy>
                   # </con:message-level-policies>
                   # </con:access-control-policies>
                   # </ser:security>
              # but when we commit
              SessionMBean.activateSession(sessionName, "description for session activation")
              # we got the following exception
              # Unexpected error: com.bea.wli.config.session.SessionConflictException
              # No stack trace available.
              # Problem invoking WLST - Traceback (innermost last):
              # File "E:\PROJETS\RECURANT\EDF\linky\WLST\WORKING\Security\lib\security.py", line 246, in ?
              # File "E:\PROJETS\RECURANT\EDF\linky\WLST\WORKING\Security\lib\security.py", line 105, in accessControlSecurity1
              # com.bea.wli.config.session.SessionConflictException: Conflicts for session SessionScript1363339726764
              # [Non-Critical] Concurrent Modification Conflicts
              # NONE
              # [Critical] Resources with validation errors
              # 1 - ProxyService test/PS_TEST_bis CannotCommit
              # + CannotCommit [OSB Security:386836]Unnecessary proxy wide message access control policy found for service "test/PS_TEST_bis". Hint: The service is neither an active security
              # intermediary nor has custom authentication enabled. ServiceDiagnosticLocation[SECURITY_TAB]:DiagnosticLocation:<con:message-level-policies xmlns:ser="http://www.bea.com/wli/sb/services" xml
              # ns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tran="http://www.bea.com/wli/sb/transports" xmlns:env="http://www.bea.com/wli/config/env" xmlns:con="http://www.bea.com/wli/sb/services/security/config">
              # <con1:default-policy xsi:type="con:ProviderPolicyContainerType" xmlns:con="http://www.bea.com/wli/sb/security/accesscontrol/config" xmlns:con1="http://www.bea.com/wli/sb/services/security/
              # config">
              # <con:policy provider-id="XACMLAuthorizer">
              # <con:policy-expression>Usr(USER_A,USER_B,USER_C)</con:policy-expression>
              # </con:policy>
              # </con1:default-policy>
              # </con:message-level-policies>
              # [Info] Informational messages
              # NONE
              # at com.bea.wli.config.session.SessionManager.commitSessionUnlocked(SessionManager.java:358)
              # at com.bea.wli.config.session.SessionManager.commitSession(SessionManager.java:339)
              # at com.bea.wli.config.session.SessionManager.commitSession(SessionManager.java:297)
              # at com.bea.wli.config.session.SessionManager.commitSession(SessionManager.java:306)
              disconnect()                              
    # when we try to modify the Acces Control Policy of the proxy service whith the service XML definition
    def accessControlSecurity2( domain_name ):
              # connection
              print "\n\n\n***********************************************************************************************"
              connect( 'weblogic', 'weblogic', 't3://localhost:7001')
              domainRuntime()
              # create a session
              sessionName = String("SessionScript"+Long(System.currentTimeMillis()).toString())
              SessionMBean = findService( SessionManagementMBean.NAME ,SessionManagementMBean.TYPE)
              SessionMBean.createSession(sessionName)
              # get service ref
              ConfigurationMBean = findService(String("ALSBConfiguration.").concat(sessionName), "com.bea.wli.sb.management.configuration.ALSBConfigurationMBean")               
              bsQuery = ProxyServiceQuery()
              bsQuery.setPath("default/*")
              refs = ConfigurationMBean.getRefs(bsQuery)
              for ref in refs:
                   print 'ref=%s'%ref
                   servConfMBean = findService( "%s.%s" % (ServiceConfigurationMBean.NAME, sessionName), ServiceConfigurationMBean.TYPE)
                   serviceDefinition = servConfMBean.getServiceDefinition(ref)
                   # parsing the proxy definition
                   nsSer = "declare namespace ser='http://www.bea.com/wli/sb/services'"
                   nsXsi = "declare namespace xsi='http://www.w3.org/2001/XMLSchema-instance'"
                   nsTran = "declare namespace tran='http://www.bea.com/wli/sb/transports'"
                   nsEnv = "declare namespace env='http://www.bea.com/wli/config/env'"
                   nsCon = "declare namespace con='http://www.bea.com/wli/sb/services/security/config'"
                   nsCon1 = "declare namespace con1='http://www.bea.com/wli/sb/services/security/config'"
                   # when we try to parse the following Xpath Expression, it' working but not sufficent to access the <con:policy-expression> element
                   confPath = "ser:coreEntry/ser:security/con:access-control-policies/con1:transport-level-policy"
                   confElem = serviceDefinition.selectPath(nsSer + nsXsi + nsTran + nsEnv + nsCon + nsCon1 + confPath )
                   print "WORKING{%s}" % confElem
                   # get the result
                   # <xml-fragment xsi:type="con:ProviderPolicyContainerType" xmlns:con="http://www.bea.com/wli/sb/security/accesscontrol/config" xmlns:con1="http://www.bea.com/wli/sb/services/security/config" xmlns:ser="http://www.bea.com/wli/sb/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tran="http://www.bea.com/wli/sb/transports" xmlns:env="http://www.bea.com/wli/config/env">
                   # <con:policy provider-id="XACMLAuthorizer">
                   # <con:policy-expression>Usr(USER_1,USER_2,USER_3)</con:policy-expression>
                   # </con:policy>
                   # </xml-fragment>
                   # and when we try to acces the <con:policy> element whith the following Xpath expression we got an empty result
                   confPath = "ser:coreEntry/ser:security/con:access-control-policies/con1:transport-level-policy/con:policy"
                   confElem = serviceDefinition.selectPath(nsSer + nsXsi + nsTran + nsEnv + nsCon + nsCon1 + confPath )
                   print "DON'T WORKING{%s}" % confElem
                   # get empty result
                   # array([], org.apache.xmlbeans.XmlObject)
              # want to modify the value like this on the <con:policy-expression> but cannot reach it ...
              #confValue="Usr(USER_A,USER_B,USER_C)"
              #confElem.setStringValue(confValue)
              # commit                
              SessionMBean.activateSession(sessionName, "description for session activation")
              disconnect
    # print the service definition
    def printServiceDefinition( domain_name ):
              # connection
              connect( 'weblogic', 'weblogic', 't3://localhost:7001')
              domainRuntime()
              # create a session
              sessionName = String("SessionScript"+Long(System.currentTimeMillis()).toString())
              SessionMBean = findService( SessionManagementMBean.NAME ,SessionManagementMBean.TYPE)
              SessionMBean.createSession(sessionName)
              # get service ref
              ConfigurationMBean = findService(String("ALSBConfiguration.").concat(sessionName), "com.bea.wli.sb.management.configuration.ALSBConfigurationMBean")               
              bsQuery = ProxyServiceQuery()
              bsQuery.setPath("default/*")
              refs = ConfigurationMBean.getRefs(bsQuery)
              for ref in refs:
                   print 'ref=%s'%ref
                   servConfMBean = findService( "%s.%s" % (ServiceConfigurationMBean.NAME, sessionName), ServiceConfigurationMBean.TYPE)
                   serviceDefinition = servConfMBean.getServiceDefinition(ref)
                   servConfMBean = findService( "%s.%s" % (ServiceConfigurationMBean.NAME, sessionName), ServiceConfigurationMBean.TYPE)
                   serviceDefinition = servConfMBean.getServiceDefinition(ref)
                   print serviceDefinition
              # commit                
              SessionMBean.activateSession(sessionName, "description for session activation")
              disconnect
    #accessControlSecurity1('cluster_domain')
    accessControlSecurity2('cluster_domain')

    Hello,
    I try to reproduce with WLST script the input from the consol to declare user on Access Control proxy (security).
    sbconsol->$Proxy Service->Security->General Confiruration->Access Control->Transport Access Control->Add Conditions
    * First implementation without success with the com.bea.wli.sb.security.management.configuration.ServiceSecurityConfigurationMBean : accessControlSecurity1()
    * Second try with the service definition of the proxy service but cannot parse with Xpath accessControl Security2()
    any idee ???
    test case :
    prerequisit
    create an ALSB domain 10.3 (admin one with username='weblogic' password='weblogic' url='t3://localhost:7001') and create a proxy service on the default project
    conf/setEnv.cmd
    @CLS
    @echo ON
    @set BEA_HOME=D:\PRODUCT\MIDDLEWARE\SOA\OSB_10.3
    @set WL_HOME=%BEA_HOME%\wlserver_10.3
    @set OSB_HOME=%BEA_HOME%\osb_10.3
    @set SCRIPTING_HOME=E:\PROJETS\RECURANT\EDF\linky\WLST\WORKING\Security
    @set OSB_LIB=%OSB_HOME%/lib/sb-kernel-api.jar;%BEA_HOME%/modules/com.bea.alsb.statistics_1.0.1.0.jar;%OSB_HOME%/lib/sb-kernel-resources.jar;%OSB_HOME%/lib/sb-kernel-common.jar;%OSB_HOME%/lib/sb-kernel-impl.jar;%OSB_HOME%\lib\sb-security.jar;%OSB_HOME%/modules/com.bea.common.configfwk_1.3.0.0.jar;%BEA_HOME%/modules/com.bea.common.configfwk_1.2.0.0.jar;%BEA_HOME%/modules/com.bea.common.configfwk_1.2.1.0.jar;%OSB_HOME%/lib/modules/com.bea.alsb.resources.archive.jar;
    @set TOOL_LIB=%SCRIPTING_HOME%\lib\log4j-1.2.15.jar;%SCRIPTING_HOME%\lib\jsch-0.1.43.jar;%SCRIPTING_HOME%\lib\db2jcc.jar
    @set CLASSPATH=%OSB_LIB%;%TOOL_LIB%;%CLASSPATH%
    @set CLASSPATH=%SCRIPTING_HOME%\lib\db2jcc.jar;%TOOL_LIB%;%CLASSPATH%
    @set MODULE_LIB=%SCRIPTING_HOME%\lib
    @call %WL_HOME%\server\bin\setWLSEnv.cmd > nul 2<&1
    launch.cmd
    @CLS
    @echo OFF
    @SETLOCAL
    @call "conf\setEnv.cmd" > nul 2<&1
    set PWD=%~dp0
    %JAVA_HOME%\bin\java -Dmodule.lib=%MODULE_LIB% weblogic.WLST -skipWLSModuleScanning lib/security.py
    lib/security.py
    from com.bea.wli.monitoring import StatisticType
    from java.util import HashMap
    from java.util import HashSet
    from java.util import ArrayList
    from java.util import Collections
    from java.io import FileInputStream
    from java.io import FileOutputStream
    from java.lang import String
    from java.lang import Boolean
    from com.bea.wli.sb.util import EnvValueTypes
    from com.bea.wli.config.env import EnvValueQuery;
    from com.bea.wli.config import Ref
    from com.bea.wli.config.customization import Customization
    from com.bea.wli.config.customization import EnvValueCustomization
    from com.bea.wli.config.customization import FindAndReplaceCustomization
    from com.bea.wli.sb.management.configuration import SessionManagementMBean
    from com.bea.wli.sb.management.configuration import ALSBConfigurationMBean
    from com.bea.wli.sb.management.query import BusinessServiceQuery
    from com.bea.wli.sb.management.query import ProxyServiceQuery
    from com.bea.wli.sb.management.configuration import ServiceConfigurationMBean
    import os
    # before, create an ALSB domain 10.3 with a proxy service in the default project and add an Acces Control Policy in the consol
    # sbconsol->Project Explorer->default->${proxy service}->Security->Access Control->Create Session->Add Conditions->User->USR_1->Add
    # when we try to modify the Acces Control Policy of the proxy service with the ServiceSecurityConfigurationMBean
    def accessControlSecurity1( domain_name ):
              # connection
              print "\n\n\n***********************************************************************************************"
              connect( 'weblogic', 'weblogic', 't3://localhost:7001')
              domainRuntime()
              # create a session
              sessionName = String("SessionScript"+Long(System.currentTimeMillis()).toString())
              SessionMBean = findService( SessionManagementMBean.NAME ,SessionManagementMBean.TYPE)
              SessionMBean.createSession(sessionName)
              # get the ServiceSecurityConfigurationMBean
              serviceSecurityConfigurationMBean = findService(String("ServiceSecurityConfiguration.").concat(sessionName), "com.bea.wli.sb.security.management.configuration.ServiceSecurityConfigurationMBean")
              # get the XACMLAuthorizer
              working_directory=pwd()
              serverConfig()
              xacmlAuthorizer = cd('/SecurityConfiguration/%s/Realms/myrealm/Authorizers/XACMLAuthorizer' % domain_name )
              cd(working_directory)
              domainRuntime()
              # get service ref
              ConfigurationMBean = findService(String("ALSBConfiguration.").concat(sessionName), "com.bea.wli.sb.management.configuration.ALSBConfigurationMBean")
              bsQuery = ProxyServiceQuery()
              bsQuery.setPath("default/*")
              refs = ConfigurationMBean.getRefs(bsQuery)
              for ref in refs:
                   print 'ref=%s'%ref               
                   # use the security Mbean to add : USER_A,USER_B,USER_C to the policy
                   policyHolder = serviceSecurityConfigurationMBean.newAccessControlPolicyHolderInstance(xacmlAuthorizer)
                   policyHolder.setPolicyExpression("Usr(USER_A,USER_B,USER_C)")     
                   policyScope = serviceSecurityConfigurationMBean.newDefaultMessagePolicyScope(ref)
                   serviceSecurityConfigurationMBean.setAccessControlPolicy(policyScope,policyHolder)
                   # print the service definition
                   servConfMBean = findService( "%s.%s" % (ServiceConfigurationMBean.NAME, sessionName), ServiceConfigurationMBean.TYPE)
                   serviceDefinition = servConfMBean.getServiceDefinition(ref)
                   print serviceDefinition
                   # we can see the security entry in the service definition has follow
                   # <xml-fragment xmlns:ser="http://www.bea.com/wli/sb/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tran="http://www.bea.com/wli/sb/transports" xmlns:env="http://www.bea.com/wli/config/env">
                   # <ser:coreEntry isProxy="true" isEnabled="true" isAutoPublish="false">
                   # <ser:description/>
                   # <ser:security>
                   # <con:access-control-policies xmlns:con="http://www.bea.com/wli/sb/services/security/config">
                   # <con:message-level-policies>
                   # <con1:default-policy xsi:type="con:ProviderPolicyContainerType" xmlns:con="http://www.bea.com/wli/sb/security/accesscontrol/config" xmlns:con1="http://www.bea.com/wli/sb/services/security/config">
                   # <con:policy provider-id="XACMLAuthorizer">
                   # <con:policy-expression>Usr(USER_A,USER_B,USER_C)</con:policy-expression>
                   # </con:policy>
                   # </con1:default-policy>
                   # </con:message-level-policies>
                   # </con:access-control-policies>
                   # </ser:security>
              # but when we commit
              SessionMBean.activateSession(sessionName, "description for session activation")
              # we got the following exception
              # Unexpected error: com.bea.wli.config.session.SessionConflictException
              # No stack trace available.
              # Problem invoking WLST - Traceback (innermost last):
              # File "E:\PROJETS\RECURANT\EDF\linky\WLST\WORKING\Security\lib\security.py", line 246, in ?
              # File "E:\PROJETS\RECURANT\EDF\linky\WLST\WORKING\Security\lib\security.py", line 105, in accessControlSecurity1
              # com.bea.wli.config.session.SessionConflictException: Conflicts for session SessionScript1363339726764
              # [Non-Critical] Concurrent Modification Conflicts
              # NONE
              # [Critical] Resources with validation errors
              # 1 - ProxyService test/PS_TEST_bis CannotCommit
              # + CannotCommit [OSB Security:386836]Unnecessary proxy wide message access control policy found for service "test/PS_TEST_bis". Hint: The service is neither an active security
              # intermediary nor has custom authentication enabled. ServiceDiagnosticLocation[SECURITY_TAB]:DiagnosticLocation:<con:message-level-policies xmlns:ser="http://www.bea.com/wli/sb/services" xml
              # ns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tran="http://www.bea.com/wli/sb/transports" xmlns:env="http://www.bea.com/wli/config/env" xmlns:con="http://www.bea.com/wli/sb/services/security/config">
              # <con1:default-policy xsi:type="con:ProviderPolicyContainerType" xmlns:con="http://www.bea.com/wli/sb/security/accesscontrol/config" xmlns:con1="http://www.bea.com/wli/sb/services/security/
              # config">
              # <con:policy provider-id="XACMLAuthorizer">
              # <con:policy-expression>Usr(USER_A,USER_B,USER_C)</con:policy-expression>
              # </con:policy>
              # </con1:default-policy>
              # </con:message-level-policies>
              # [Info] Informational messages
              # NONE
              # at com.bea.wli.config.session.SessionManager.commitSessionUnlocked(SessionManager.java:358)
              # at com.bea.wli.config.session.SessionManager.commitSession(SessionManager.java:339)
              # at com.bea.wli.config.session.SessionManager.commitSession(SessionManager.java:297)
              # at com.bea.wli.config.session.SessionManager.commitSession(SessionManager.java:306)
              disconnect()                              
    # when we try to modify the Acces Control Policy of the proxy service whith the service XML definition
    def accessControlSecurity2( domain_name ):
              # connection
              print "\n\n\n***********************************************************************************************"
              connect( 'weblogic', 'weblogic', 't3://localhost:7001')
              domainRuntime()
              # create a session
              sessionName = String("SessionScript"+Long(System.currentTimeMillis()).toString())
              SessionMBean = findService( SessionManagementMBean.NAME ,SessionManagementMBean.TYPE)
              SessionMBean.createSession(sessionName)
              # get service ref
              ConfigurationMBean = findService(String("ALSBConfiguration.").concat(sessionName), "com.bea.wli.sb.management.configuration.ALSBConfigurationMBean")               
              bsQuery = ProxyServiceQuery()
              bsQuery.setPath("default/*")
              refs = ConfigurationMBean.getRefs(bsQuery)
              for ref in refs:
                   print 'ref=%s'%ref
                   servConfMBean = findService( "%s.%s" % (ServiceConfigurationMBean.NAME, sessionName), ServiceConfigurationMBean.TYPE)
                   serviceDefinition = servConfMBean.getServiceDefinition(ref)
                   # parsing the proxy definition
                   nsSer = "declare namespace ser='http://www.bea.com/wli/sb/services'"
                   nsXsi = "declare namespace xsi='http://www.w3.org/2001/XMLSchema-instance'"
                   nsTran = "declare namespace tran='http://www.bea.com/wli/sb/transports'"
                   nsEnv = "declare namespace env='http://www.bea.com/wli/config/env'"
                   nsCon = "declare namespace con='http://www.bea.com/wli/sb/services/security/config'"
                   nsCon1 = "declare namespace con1='http://www.bea.com/wli/sb/services/security/config'"
                   # when we try to parse the following Xpath Expression, it' working but not sufficent to access the <con:policy-expression> element
                   confPath = "ser:coreEntry/ser:security/con:access-control-policies/con1:transport-level-policy"
                   confElem = serviceDefinition.selectPath(nsSer + nsXsi + nsTran + nsEnv + nsCon + nsCon1 + confPath )
                   print "WORKING{%s}" % confElem
                   # get the result
                   # <xml-fragment xsi:type="con:ProviderPolicyContainerType" xmlns:con="http://www.bea.com/wli/sb/security/accesscontrol/config" xmlns:con1="http://www.bea.com/wli/sb/services/security/config" xmlns:ser="http://www.bea.com/wli/sb/services" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tran="http://www.bea.com/wli/sb/transports" xmlns:env="http://www.bea.com/wli/config/env">
                   # <con:policy provider-id="XACMLAuthorizer">
                   # <con:policy-expression>Usr(USER_1,USER_2,USER_3)</con:policy-expression>
                   # </con:policy>
                   # </xml-fragment>
                   # and when we try to acces the <con:policy> element whith the following Xpath expression we got an empty result
                   confPath = "ser:coreEntry/ser:security/con:access-control-policies/con1:transport-level-policy/con:policy"
                   confElem = serviceDefinition.selectPath(nsSer + nsXsi + nsTran + nsEnv + nsCon + nsCon1 + confPath )
                   print "DON'T WORKING{%s}" % confElem
                   # get empty result
                   # array([], org.apache.xmlbeans.XmlObject)
              # want to modify the value like this on the <con:policy-expression> but cannot reach it ...
              #confValue="Usr(USER_A,USER_B,USER_C)"
              #confElem.setStringValue(confValue)
              # commit                
              SessionMBean.activateSession(sessionName, "description for session activation")
              disconnect
    # print the service definition
    def printServiceDefinition( domain_name ):
              # connection
              connect( 'weblogic', 'weblogic', 't3://localhost:7001')
              domainRuntime()
              # create a session
              sessionName = String("SessionScript"+Long(System.currentTimeMillis()).toString())
              SessionMBean = findService( SessionManagementMBean.NAME ,SessionManagementMBean.TYPE)
              SessionMBean.createSession(sessionName)
              # get service ref
              ConfigurationMBean = findService(String("ALSBConfiguration.").concat(sessionName), "com.bea.wli.sb.management.configuration.ALSBConfigurationMBean")               
              bsQuery = ProxyServiceQuery()
              bsQuery.setPath("default/*")
              refs = ConfigurationMBean.getRefs(bsQuery)
              for ref in refs:
                   print 'ref=%s'%ref
                   servConfMBean = findService( "%s.%s" % (ServiceConfigurationMBean.NAME, sessionName), ServiceConfigurationMBean.TYPE)
                   serviceDefinition = servConfMBean.getServiceDefinition(ref)
                   servConfMBean = findService( "%s.%s" % (ServiceConfigurationMBean.NAME, sessionName), ServiceConfigurationMBean.TYPE)
                   serviceDefinition = servConfMBean.getServiceDefinition(ref)
                   print serviceDefinition
              # commit                
              SessionMBean.activateSession(sessionName, "description for session activation")
              disconnect
    #accessControlSecurity1('cluster_domain')
    accessControlSecurity2('cluster_domain')

  • How to implement Post redirect Get Pattern in JSF

    Hi All,
    Will Post-Redirect-Get pattern solves the duplicate form submission in JSF 1.1 ? . Kindly provide valuable suggestion or implementation detail on PRG.
    Regards,
    Dev

    Continuation of this thread:How to prevent dupilcate form submission in JSF 1.x
    No, the PRG pattern will only make it less likely to happen. The user is still free to navigate back in the browser history to where the POST happened and then perform it again.

  • Saxon parser - use in OSB/ALSB

    Hi All,
    We are considering use saxon to replace Oracle/BEA's internal xslt parser to increase performance , i would like to know if anybody has experience with this.
    As when i change to use saxon i also get following exception.
    Throwable: javax.xml.stream.FactoryConfigurationError: Provider null could not be instantiated: java.lang.NullPoin
    terException
    Stack Trace:
    javax.xml.stream.FactoryConfigurationError: Provider null could not be instantiated: java.lang.NullPointerExceptio
    n
    at javax.xml.stream.FactoryFinder.newInstance(FactoryFinder.java:75)
    at javax.xml.stream.FactoryFinder.find(FactoryFinder.java:136)
    at javax.xml.stream.FactoryFinder.find(FactoryFinder.java:92)
    at javax.xml.stream.XMLInputFactory.newInstance(XMLInputFactory.java:136)
    at weblogic.descriptor.DescriptorReader.<init>(DescriptorReader.java:22)
    at weblogic.management.provider.internal.ConfigReader.<init>(ConfigReader.java:71)
    I have done following,
    1.copied saxon libraries in $JAVA_HOME/jre/lib directory
    2.created jaxp.properties in $JAVA_HOME/jre/lib
    javax.xml.transform.TransformerFactory=net.sf.saxon.TransformerFactoryImpl
    Rgds

    Hi Anuj,
    As per standard way to plugging in xslt parser i tried to add jaxp.properties.
    Although there is another way in weblogic server uising xml registry to override the default parse and this way i succeeded in replacing weblogic default xslt parser.
    However ALSB has its own implementation of XSLT parser which is part of sb_core.jar , this following class most likely com.bea.wli.sb.stages.transform.TransformFactoryImpl.
    We would like to use our own parser as XSLT engine has a bug.
    If a xpath function is used in XSLT resource(like concat, string-join) , then XSLT fails to execute , this bug is there from Weblogic 9.2 MP2 (ALSB 2.6.1) onwards [ in Weblogic 9.2 MP1 this  works properly].
    So we wanted to change ALSB's default xslt parser to saxon, which is supposed to be best one available.
    We do have case against this bug too ,and we hope we will get a patch .
    Still we want to know if we can replace ALSB's default XSLT engine.
    Rgds
    Roy

  • OSB (ALSB 2.6) Unwanted changes to XML messages

    I have a customer who would like to pass the following XML to OSB 2.6 (ALSB):
    </Parameter><Parameter Encoding="plain"><Name>TestParameter2</Name><Value>&lt;firsttag&gt;&lt;secondtag&gt;text_in_secondtag&lt;/secondtag&gt;&lt;/firsttag&gt;</Value></Parameter>
    The problem is that once the XML is consumed by OSB it gets changed to the following:
    </Parameter><Parameter Encoding="plain"><Name>TestParameter2</Name><Value>&lt;firsttag>&lt;secondtag>text_in_secondtag&lt;/secondtag>&lt;/firsttag></Value></Parameter>
    Is there any way to prevent this from happening?

    Sorry, the 2nd XML I pasted here actually got transformed on the forum, I didn't notice that when I first posted this. Let me try to explain in another way.
    the sequence "& l t;" is changed to "<"
    (I added the spaces this time so it did not get changed again.)
    The problem is that the message is a signed message so when it is finally received the signature is different.

  • For Loop in OSB(ALSB)

    I have a variable in alsb:
    $destinations = <destinations>
    <destination>
         <DESCRIPTION>
         URL1
         </DESCRIPTION>
    </destination>
    <destination>
         <DESCRIPTION>
         URL2
         </DESCRIPTION>
    </destination>
    </destinations>
    I have for each loop in ALSB which loops around this variable for each <destination> in <destinations>.
    The problem is, when it is looping, I want to send the corresponding <description>-URL by addressing it as $destinations/destination\[$indexArg\]. It is returning all the <destination> nodes.
    However, it is working fine when I use a hardcoded number instead of the variable index.
    For Eg:
    $destinations/destination[1] is returning the first node (as expected)
    <destination>
         <DESCRIPTION>
         URL1
         </DESCRIPTION>
    </destination>
    But, when I use $destinations/destination\[$indexArg\] all the destination nodes are getting returned.
    I understand I am missing something. Any help will be appreciated.
    Thanks in advance,
    Chandan.
    Edited by: user10604890 on May 20, 2009 11:31 PM
    Edited by: user10604890 on May 21, 2009 12:10 PM
    Edited by: user10604890 on May 21, 2009 12:11 PM

    I was asking about the dynamic selection of the node from a variable.
    in the $destinations variable to select a particular node with a number.
    Eg: $destinations/destination\[$index\]
    It works fine if I say, $destinations/destination[1] and selects only the first node.
    When I assign a index value there, it gives every destination variable in destinations.
    For Each is not what the question is about.

  • XPath expresion problems in OSB(ALSB)

    Hi,
    I´m working on a OSB Proxy with a conditional Branch, but I have a problem, looking to some examples in the web about xPath it is supposed that this xPath expresion:
    */iniciarCambio/cambios/companiaTipo*
    with this XML:
    *<iniciarCambio>*
    *<cambios>*
    *<ListaDeCambios>*
    *<!--1 or more repetitions:-->*
    *<Cambio>*
    *<campoNombre>Cambio1</campoNombre>*
    *<valorAnterior>antes</valorAnterior>*
    *<valorNuevo>despues</valorNuevo>*
    *</Cambio>*
    *</ListaDeCambios>*
    *<companiaId>32</companiaId>*
    *<companiaNombre>MMRedes</companiaNombre>*
    *<companiaTipo>Servicio</companiaTipo>*
    *</cambios>*
    *</iniciarCambio>*
    Should return:
    Servicio
    But we are executing this in the Test Tool and it is returning this:
    *<companiaTipo>Servicio</companiaTipo>*
    Has some body struggled with this kind of issues? is there a way to make this on the OSB xPath? or am I missing someting?
    Tanx alot in advanced!
    Kind Regards,
    Gerardo J

    Hi all!
    Thanx for the answers! I have tried in the past the /text() I tried it again and didn´t worked, some body knows how can I post some screen shots so you can see that I´m using the /text() and maybe with the screen shot you can detect something, also I´m loging the $body in the default branch(cause it is not detecting the value between the tags it goes directly to the Defaul Branch) you will se some differences in the XML since I simplified the XML to make the example and tested this simplified XML it in the TEST Tool in the console and had the same results that with the original evendough I put the /text() at the end
    Here is the Body I loged in the default Branch:
    <soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
    <imp:iniciarCambio xmlns:imp="http://bea.com/albpm/MMME/ImpactarCambiosClienteBILLING">
    <cambios xmlns:bea="http://bea.com/">
    <bea:ListaDeCambios>
    <!--1 or more repetitions:-->
    <bea:Cambio>
    <bea:campoNombre>Cambio1</bea:campoNombre>
    <bea:valorAnterior>antes</bea:valorAnterior>
    <bea:valorNuevo>despues</bea:valorNuevo>
    </bea:Cambio>
    </bea:ListaDeCambios>
    <bea:companiaId>32</bea:companiaId>
    <bea:companiaNombre>MMRedes</bea:companiaNombre>
    <bea:companiaTipo>Servicio</bea:companiaTipo>
    </cambios>
    </imp:iniciarCambio>
    </soapenv:Body>>
    as you can see it is Servicio and it should have gone to one of the branches instead of the default but it didn´t
    Can´t see what I´m doing wrong, but maybe some of you can.
    Thanx in advanced!
    Gerardo J

  • How to handle OOME in OSB/ALSB

    In WebLogic the advice on OutOfMemoryError is to restart the server via the panic action in overload configuration.
    However, in OSB an OOME is always caught by an OSB errorhandler, so I think that leaves you with the following options
    1. in all your OSB errorhandlers call System.exit(), not nice since errorhandlers cannot be reused
    2. configure JRockit to exit on OOME
    3. monitor WebLogic/OSB log for OOME and take some action on that
    What do you think?

    1. in all your OSB errorhandlers call System.exit(), not nice since errorhandlers cannot be reused
    Not Recommended, OOM are runtime errors and you cannot predict the when/where they can happen. Why would you want to put system.exit in every error handler. this would be over-kill. Its like putting try-catch block for every piece of java code that is written.
    2. configure JRockit to exit on OOME
    May not be good idea either. Only some sub-system might be effected by OOM, other systems might not be...
    3. monitor WebLogic/OSB log for OOME and take some action on that
    This would be the best way if I have to choose from your given 3 options
    You should not how ever forget that with step 3, we should also spend some (painful!) time to identify the root-cause of the OOM and eliminate either by changing program/logic or upgrading the hardware...That is the only long-term solution.
    Thanks
    Manoj

  • OSB/ALSB: SOA principles-orchestration

    Hi
    We have been developing a project in which multiple projects refer each other.
    For example:
    Project A has proxy service PS_A : responsible for database processing. (PS_A does some logic code in message flow and calls JCA based BS_DBProcess)
    Project B has proxy service PS_B: responsible for travel transactions. (PS_B has some logic code in message flow and calls https based BS_TravelProcess)
    Project C has proxy service PS_C: responsible for finance transactions. (PS_C has some logic code in message flow and calls https based BS_FinanceProcess)
    Now,
    I have a project D, which has proxy service PS_D which calls PS_A, PS_B, PS_C. In short what we have done is a Proxy service To Proxy service orchestration.
    I was wondering if this is in accordance with SOA principles. I mean in OSB sbconsole, when I am creating a business service - I can see option of creating a business service based on a proxy service. So I was thinking if I create:
    BS_A based on PS_A
    BS_B based on PS_B
    BS_C based on PS_C
    and orchestrate them by PS_D will it be more in line of SOA principles? The difference in this case is that, I will have Proxy service to Business service orchestration, and business services will be based on existing proxy services.
    So, should I continue with Proxy to proxy orchestration or make a Proxy to business orchestration ?
    Thanks and Regards,
    Swapnil Kharwadkar

    pragmatically (I don't care too much about the SOA books, all I want is something simple, manageable, fast and solid),
    introducing a BS between PS_D and PS_A,B,C brings you some value when it comes to retrying a failed service, load balancing and result caching.
    If you are NOT interested in any of these, then simply invoke directly the PS_A,B,C (maybe with LOCAL transport, to make it more efficient) from the PS_D

  • OSB/ALSB: xquery transformation

    Hi
    I have xml of the form:
    namespaceA="www.school.com/school"
    namespaceB="www.teacher.com/teacher"
    <namespaceA:School>
    <namespaceA:Class>10th</namespaceA:Class>
    <namespaceB:Teacher>John</namespaceB:Teacher>
    </namespaceA:School>
    I want to extract <Class> element, so in xquery i simply write expression and assign it to variable:
    $body/namespaceA:School/namespaceA:Class so expected outcome is this : *<namespaceA:Class xmlns:namespaceA="www.school.com/school">10th</namespaceA:Class>*
    However I get the following:
    <namespaceA:Class xmlns:namespaceA="www.school.com/school" xmlns:namespaceB="www.teacher.com/teacher">10th</namespaceA:Class>
    Now clearly I do not need namespace B declaration in the obtained sub-element <Class>.
    How to stop inheriting these namespaces? I used expression : $body/namespaceA:School/@* , $body/namespaceA:School/node() But in vain.
    Any ideas?

    if you can ignore it, just ignore it. If it really irritates you, here in OSB How to remove a namespace that is located into the <soapenv:Body> you have a few solutions - I haven't tried them so it's up to you to experiment.

  • OSB: ALSB Statistics Manager Error

    Dear all,
    I got this error msg,
    <Jun 29, 2012 5:36:00 PM ICT> <Error> <ALSB Statistics Manager> <BEA-473003> <Aggregation Server Not Available. Failed to get remote aggregator
    java.security.PrivilegedActionException: java.rmi.UnknownHostException: Could not discover URL for server 'bssesbdm1'
         at java.security.AccessController.doPrivileged(Native Method)
         at javax.security.auth.Subject.doAs(Subject.java:396)
         at com.bea.alsb.platform.weblogic.topology.WlsRemoteServerImpl.lookupJNDI(WlsRemoteServerImpl.java:83)
         at com.bea.wli.monitoring.statistics.ALSBStatisticsManager.getRemoteAggregator(ALSBStatisticsManager.java:291)
         at com.bea.wli.monitoring.statistics.ALSBStatisticsManager.access$000(ALSBStatisticsManager.java:38)
         Truncated. see log file for complete stacktrace
    Caused By: java.rmi.UnknownHostException: Could not discover URL for server 'bssesbdm1'
         at weblogic.protocol.URLManager.findURL(URLManager.java:145)
         at com.bea.alsb.platform.weblogic.topology.WlsRemoteServerImpl.getInitialContext(WlsRemoteServerImpl.java:133)
         at com.bea.alsb.platform.weblogic.topology.WlsRemoteServerImpl.access$000(WlsRemoteServerImpl.java:56)
         at com.bea.alsb.platform.weblogic.topology.WlsRemoteServerImpl$1.run(WlsRemoteServerImpl.java:85)
         at java.security.AccessController.doPrivileged(Native Method)
         Truncated. see log file for complete stacktrace
    >
    <Jun 29, 2012 5:39:01 PM ICT> <Error> <Monitoring> <BEA-000000> <VersionIncompatibilityException detail:
    Versions (this, other):
         (-8718457713883866580, -3257523398790736559)
    Resource version that differ (this, other):
         (nonexisting, 7939255952039589595)
         (nonexisting, -2571034341091110885)
         (4922128814104398101, nonexisting)
         (nonexisting, 2959775698021086633)
         (nonexisting, 7619734982621514655)
         (nonexisting, -631632660728940988)
         (-6962817245131479838, nonexisting)
         (4817050921499265318, -4436298627369639604)
         (-5177782194385626164, -3283830087695183814)
    Please suggest me how to solve this.
    Thank you

    Hi Eric,
    Thank you for your reply.
    The error occur when I started both M1 and M2 server.
    I've already restart all manage and the admin server, set the singleton to only one managed server and set the cluster address but I still get the same error log.
    Any help would be appreciated.
    Thank you

  • TM implementation without standard shift pattern

    Hi All,
    Can you please let me know, how can we configure the Time Management, if the client is not having standard shift pattern. This is a shipyard. Here the employees are not having standard shift pattern.
    Thanks & Regards,
    Sumathi.

    Hi Deck,
    This is actually a ship yard, here employees are working in shifts, however specific shift pattern is not defined to anybody, because it all depends on the work assignment by the managers. In this case how can we configure the work shcdule. If i use the flexi time in the work schedule, how can i calculate the OT correctly, because there are different OT ratings based on working at day or night and after working for specific OT hours there is a different rating.
    The concept that you have sent me, i did not understand.
    Could you please give me more idea on this.
    Thanks & Regards,
    Sumathi.

Maybe you are looking for