Parallel processing on multiple IdM instances -- real enterprise class

Hi all. We run what we earnestly hoped would be a true enterprise class IdM v6 SP1 installation: 2x v440 Sol9 app servers each with 2 IdM instances (AS virtual servers), each host dual CPU and 4GB RAM available; connected to a 4 node dual CPU Oracle RAC cluster.
But our performance, to use a technical term, sucks bollocks, and has done for >12 months. The main area where this hurts is when we run a DBTable ActiveSync process to update the user base and any associated resources.
We suspect a few things, but ultimately the most frustrating and intractable problem is this: IdM processes all the Update User tasks stemming from the ActiveSync poll one by one, sequentially, in series, and all on the originating IdM instance. So if we have, say, 5000 updates to process, we watch 5000 sequential User Update tasks, one after the other. Even if each task takes only a couple seconds, we often notice inexplicable gaps of many seconds between one sequential task completing (start time + execution time) and the next beginning. The end result is a throughput rate of usually less than 300/hr -- more than 10hrs to process those 5000 updates!
Despite setting the [custom] Update User wf to execMode='async', IdM seems to refuse to run these tasks in parallel. In an installation of this size and resource capacity, this is excruciating. Plus there's the fact that as I write, and as it crawls along, the IdM instance running the tasks is showing up in prstat like this:
PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP
28946 sentinel 2583M 2379M cpu3 28 0 87:27:53 25% appservd/177
That's quite a lot of resource-use for not a lot of outcome...
So, does anyone know: how can we get these tasks to run multiple in parallel rather than sequentially; how can we get the task load to be spread across all 4 available IdM instances rather than just the one that executed the ActiveSync poll?
In long suffering desperation, any help greatly appreciated!
PS - 2 things regarding parallel:
1. on the TaskDefinition for the Update User wf, there is also an attribute named 'syncControlAllowed' -- anyone know what this means/does? Would setting it to 'false' perhaps give us true async/parallel mode?
2. I suspect forcing the task into background could potentially give parallel behaviour, but the problem is that Update User is of course called by any user update task, and when done interactively the administrator may not wish to have the task run in the background.

Hi,
i'm afraid i don't know an easy answer to your question. But there are several things that should be considered:
1) 12s average update time seems a lot. I'm sure that can be optimized. Have you thought about a dedicated sync form (assigned to the proxy admin used for active sync)? If you have that you might also consider setting viewOptions.Process there to use a simplified workflow optimized for your sync process. Take a look at the dynamic tabbed user form example as well - some of the resources you have may not be subject to synchronization and those should be ruled out by setting the sync forms "TargetResources" property to an aproptiet value.
2) i recently found an interessting way of parallelizing tasks. This is potentially dangerous as you have to build something in that prevents this from being a "fork bomb". Still some example code for a simple scenario where you just want to sync global.email, populated by your AS form. If the workflow consisted out of "start", "nonblocking task launch" and "end" the "nonblocking task launch" had an action like
<Action id='0'>
    <expression>
      <block>
        <defvar name='session'>
          <invoke name='getLighthouseContext'>
            <ref>WF_CONTEXT</ref>
          </invoke>
        </defvar>
        <defvar name='tt'>
          <new class='com.waveset.object.TaskTemplate'>
            <invoke name='getObject'>
              <ref>session</ref>
              <s>TaskDefinition</s>
              <s>Nonblocking Workflow</s>
              <map/>
            </invoke>
          </new>
        </defvar>
        <invoke name='setSubject'>
          <ref>tt</ref>
          <invoke name='getSubject'>
            <ref>session</ref>
          </invoke>
        </invoke>
        <invoke name='setVariable'>
          <ref>tt</ref>
          <s>accountId</s>
          <ref>user.waveset.accountId</ref>
        </invoke>
        <invoke name='setVariable'>
          <ref>tt</ref>
          <s>email</s>
          <ref>user.global.email</ref>
        </invoke>
        <invoke name='runTask'>
          <ref>session</ref>
          <ref>tt</ref>
        </invoke>
      </block>
    </expression>
  </Action>The workflow "Nonblocking Workflow" then would have accountId and email available in its variables and if it is defined as "async" it will really be launched that way - build in something that prevents your system from exploding...
3) probably safer than trying what i implied in 2) (i only used this for a totally different task that can not explode) you could consider to have several instance of the database table resource adapter. Lets say your primary key in the db is "employeeId". If you define for seperate resources, each handling employeeIds modulo [1,2,3,4] only you could distribute the load among your cluster. I did a similar thing with flatfileactivesync before.
4) back to the average 12s again. If you don't have some slow resources this could mean that the parallel resource limit kicks in. Take a look at waveset.properties about limits like this.
Synchronization is not the ootb strength of IDM - but with some optimization you should be able to get to reasonable results.
Regards,
Patrick

Similar Messages

  • Multiple IDM instances on same host

    Can multiple Identity Manager app server instances be run on the same host, connecting to the same db? If so, how is this accomplished. From what I see Identity Manager instances attempt to register themselves using the host name. Is there a property in the properties file that can set a unique name?

    It appears to be possible, at least in IDM 7.1
    The release notes and Installation guide reference a setting called waveset.serverId that you set in your application server startup script like so:
    -Dwaveset.serverId=Name
    This would allow each JVM to identify itself differently from any others running on the same physical server.
    I haven't tried this yet myself, so caveat emptor.
    Jason

  • Bug - multiple related instances of same class

    We've discovered a rather subtle bug in the process by which Kodo
    searches for reachable related objects to persist. If an instance of a
    PC class (A) has two relationships to the same PC class (B), and both
    related instances of B have the same value for their PK-field, then only
    one of the related instances of B will be persisted.
    Obviously, this problem only occurs in the context of application
    identity. We've only encountered it when all the instances involved are
    newly created and being made persistent for the first time (else the
    instances would have different PK-values). It should also be noted that
    we're assigning PK-values in jdoPreStore(). Here's the specific
    situation we encountered:
    Class A has two relationships to class B, represented by fields "B b1"
    and "B b2". In our case, A.b1 is the many-side of a bidirectional
    one-to-many relationship; the one-side is implemented by a field "List
    aList" in B. A.b2 is the navigable side of a unidirectional
    relationship; there is no corresponding field in B. (We haven't checked
    whether or how the cardinality or navigability of the relationships
    affects the problem.)
    Let "a1" be the sole instance of A. If a1.b1 is set to an instance of B
    but a1.b2 is null, and makePersistent( a1 ) is called, then a1 and b1
    are persisted correctly and the relation field b2_id in TableA is NULL.
    However, if a1.b2 is set to a second instance of B and both instances of
    B have the same initial value of their PK-field, then a.b2 is not
    persisted. Only one record is added to TableB; it corresponds to A.b1.
    Interestingly, in this case the relation field b2_id in TableA is not
    NULL, but has the default value of b2's PK-field. jdoPreStore() is not
    called on b2 and b2 is not persisted, but its PK-field is read in the
    process of persisting a1.
    Since we've placed the jdoPreStore() callback in a common non-persistent
    adapter superclass, we're currently able to work around the problem with
    a static "seed" PK value that is incremented in the superclass default
    constructor to provide a unique initial value for each PK-field. If
    anyone would like the code for this approach we'll post it, although
    it'll become unnecessary when the problem is fixed.
    Jerry Pulley
    Sr. Developer
    Commerce Technologies, Inc.

    I'm curious what behavior, besides throwing an exception, could even be
    possible. If the pm discovers two object with the same id, it seems that it
    has to choose one of them to make persistent. How could it possibly resolve
    differences in the fields of the two instances in deciding which one is the
    correct one to put in the db? Additionally, allowing this behavior could
    lead to subtle, difficult to detect bugs in your program, since ( as Abe
    points out ) JDO promises that there will only be one instance of an object
    with a given primary key per PM. Other code may make decisions based on
    this expectation ( like refreshing one of the objects after making a change
    in a different PM ), that would lead to problems for code still hanging on
    to the second instance.
    IMHO, it should throw an exception.
    -Eric
    "Abe White" <[email protected]> wrote in message
    news:[email protected]...
    Thanks for the bug report! However, I'm not entirely sure that this is a
    bug (at least not the bug you think it is); either way it's an extremely
    interesting case. The reason I say it might not be a bug is thatassigning
    pk values in jdoPreStore seems suspect.
    We know that a single PM cannot at any time contain multiple instances
    with the same oid value, app id or otherwise. This is obvious from the
    getObjectById method -- only one object can have a particular oid.
    We also know that jdoPreStore is called only for instances managed by a
    PM (duh!).
    Thus it should not be possible to see a case where jdoPreStore is
    called for 2 objects with the same initial oid.
    Now, I realize that when you're dealing with persistence-by-reachability
    things become less clear. However, I think the general point stands: at
    the time that the objects are made persistent they all must have unique
    oid values, and objects must be made persistent before jdoPreStore is
    called.
    Technically we could get around this. The current
    persistence-by-reachability algorithm is something like:
    flushed = {}
    while flushed.size < persistent.size:
    for each persistent instance:
    if instance not in flushed:
    instance.jdoPreStore // may persist more instances
    instance.persistFirstClassFields // may persist more too
    flushed += instance
    In sum this is a breadth-first method of persisting relations. It could
    be changed to a depth-first system instead of persisting all first class
    fields each one is persisted and then immediately the algorithm is
    repeated for that object before the other fields are touched. However,
    this seems like it might lead to other unexpected behavior.
    Generally, it just seems like waiting till jdoPreStore to assign the oid
    of an object seems like a bad idea. I think the real bug is that Kodo is
    not throwing an exception as soon as 2 object with the same oid are
    detected (currently it just lets one overwrite the other in the cache,
    which results in the behavior you see).
    Does anyone else have an opinion on this? I'm certainly not fixed on my
    interpretation of things; if you disagree I'd be very interested in
    hearing other arguments.

  • Can we run parallel data collections to collect multiple source instance.

    Hi,
    We have a business requirement where we will have multiple Source(ERP) instance and single Destination(ASCP) instance. We would like to check if we will be able to run Data collections in parallel to collect multiple EPR instance in the same time window. This is to reduce the total planning process time duration as following data collections we will be required to run multiple plan runs.
    Please help me with your expert comments
    Rgds
    Sid

    You may instead use Continuous collections to save on time so it can run collections from both instances periodically throughout the day thereby reducing a single timespan to collect all the data.
    Thanks
    Navneet Goel
    Inspirage

  • SAVE BAPI Issue in Parallel Processing

    Hello Friends,
    I have used this BAPI  'BAPI_POSRVAPS_SAVEMULTI3' to Save Some Orders in SAP APO. I have given option to run the program both in Normal Mode and Parallel Processing mode..
    In Normal mode it is able to save the data with Class Characteristics, But in Parallel Processing it is unable to save the  Class Characteristics values.
    We are passing same set of data both in Normal and Parallel Processing...
    But we are encountering this issue only in Parallel Processing... During this Save the POSEX in getting cleared in the receipts table t_orders_consolidated after Commit.... due to this it is unable to save the characteristics information stored in t_CFGH, T_CFGI and T_CFGV.
    We have also raised an OSS Message.
    But this is working fine as expected in Normal mode..
    Please advise... Its little critical to close this week...attached is some screen shots of the debug mode values...
    CALL FUNCTION 'BAPI_POSRVAPS_SAVEMULTI3'
                STARTING NEW TASK v_pp_taskname
                DESTINATION IN GROUP as_processing_options-server_group
                CALLING receive_update_orders_parallel ON END OF TASK
                EXPORTING
                  logical_system        = im_v_logsys
                  ext_number_assignment = abap_false
                  plng_version          = im_v_vrsio
                  no_create            = abap_true
                TABLES
                  receipts              = t_orders_consolidated
                  receipts_x            = t_orders_consolidated_x
                  cfg_headers          = t_cfgh
                  cfg_instances        = t_cfgi
                  cfg_values            = t_cfgv
                  return                = t_return
                  extension_in          = t_extension_in
                EXCEPTIONS
                  system_failure        = 1
                  communication_failure = 2
                  resource_failure      = 3.

    Hi Kunal,
    Check this links:
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/b06c3f96-ed4f-2a10-1693-f2c76a39988f
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/90886731-21e4-2a10-2ebf-901c2c2b4e3d
    Basically, what you do is:
    - Define a source: in your case will be a query.
    - Define a target: you'll need to create a transactional DSO to save information.
    - Connect both: you can simply assign fields if the query is just what you need to download, or you can have routines.
    Transaction for creating APD is RSANWB. It's pretty easy and it's a graphical interface, so you should find your way easily.
    Hope this helps.
    Regards,
    Diego

  • Single SOA Suite Install with multiple oc4j instances and java processes

    We right now have 5 BPEL processes and 5 ESB processes all running under one java.exe process. We would like to seperate some of
    them out into their own java.exe processes without having to install more
    %ORACLE_HOME% instances of SOA Suite. I can create an oc4j instance but of
    course it doesn't have any SOA Suite stuff deployed to it. I tried to see what
    the install would do with this new oc4j instance but it wants to create a new
    %ORACLE_HOME% with an entire installation of SOA Suite.
    Is there some sort of way to clone oc4j instances that have SOA Suite deployed to them so that you
    don't need multiple %ORACLE_HOME% instances?
    ### How is this Issue Impacting Your Business ###
    We really don't want to have a lot of %ORACLE_HOME% instances to have to maintain. We are
    migrating projects over from our current integration server product and we'll
    have potentially dozens more BPEL and ESB projects. We definitely want to
    group and isolate projects so that outages of one project do not bring down
    others that are unrelated.
    We are currently experiencing periodic problems with one BPEL project that requires recycling but all the other BPEL and ESB
    projects get recycled also. If we could put this project into it's own java
    process without creating another SOA SUITE instance, it would be a big
    help.
    ANSWER
    =======
    You can create multiple domains in BPEL or create multiple systems/groups in ESB to group different projects.
    MY REPLY:
    =========
    We have been using systems/groups in ESB but they all run under the save java.exe process. I would assume that having a seperate domain in BPEL would also run in that same java.exe process.
    Right now, the one BPEL project we have a problem with will gobble up all the JDBC connections from time to time and that requires a recycle of SOA Suite, which means all BPEL and ESB projects that run in that java.exe process get recycled also. We're working that issue in a different ticket.
    It would be nice if the SOA Suite installation would install against a new oc4j instance and not assume it has to create a complete %ORACLE_HOME% instance. The components of SOA Suite seem to be J2EE based components.
    Scenario: I already have an oc4j instance called oc4j_soa and a complete %ORACLE_HOME% installation of soa suite. I then create a new oc4j instance from Enterprise Manager. Then I would deploy the esb-dt, esb-rt, orabpel, etc. components of SOA Suite to that new oc4j instance and modify the necessary config file so that it can work with OHS and the SOA Suite Databases. Is this possible?
    Does anyone have any experience with this or do people typically install multiple complete installation of SOA Suite with mulitple Oracle Homes?

    Hi,
    yes, on metalink you get in touch with real experts....
    You have to install serveral application servers to get different ORACLE_HOMEs.
    For each one, you can install a BPEL PM.
    But: For each BPEL PM you need your own database instance, or you have to configure them as a clustered BPEL installation.... (but i do not know if this work with non RAC DBs)

  • Can not view audit trail of BPMN Process instance in Enterprise Manager

    I can not view the audit trail of BPMN Process instance in Enterprise Manager. When I try to click on BPMN process link inside process instance flow trace a NoClassDefFoundError error occurs. How can I fix this?
    ####<Jan 23, 2014 1:44:24 AM MSK> <Error> <oracle.adfinternal.view.faces.config.rich.RegistrationConfigurator> <vm-vtb-04> <AdminServer> <[ACTIVE] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)'> <weblogic> <> <ab53c740f435f6de:-43ee6bbc:143bbd0bbe7:-8000-0000000000000319> <1390427064715> <BEA-000000> <ADF_FACES-60096:Server Exception during PPR, #2
    javax.servlet.ServletException: java.lang.NoClassDefFoundError: oracle/bpm/draw/diagram/ProcessDiagrammer
            at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:342)
            at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:27)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
            at oracle.sysman.emSDK.license.LicenseFilter.doFilter(LicenseFilter.java:102)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
            at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
            at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:131)
            at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:447)
            at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
            at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:447)
            at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
            at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
            at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
            at oracle.help.web.rich.OHWFilter.doFilter(Unknown Source)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
            at oracle.sysman.emas.fwk.MASConnectionFilter.doFilter(MASConnectionFilter.java:41)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
            at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:181)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
            at oracle.sysman.eml.app.AuditServletFilter.doFilter(AuditServletFilter.java:183)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
            at oracle.sysman.eml.app.EMRepLoginFilter.doFilter(EMRepLoginFilter.java:203)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
            at oracle.sysman.core.model.targetauth.EMLangPrefFilter.doFilter(EMLangPrefFilter.java:158)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
            at oracle.sysman.core.app.perf.PerfFilter.doFilter(PerfFilter.java:141)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
            at oracle.sysman.eml.app.ContextInitFilter.doFilter(ContextInitFilter.java:542)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
            at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
            at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:324)
            at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:460)
            at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
            at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
            at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
            at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:163)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
            at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
            at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:57)
            at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3730)
            at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696)
            at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
            at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
            at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273)
            at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179)
            at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490)
            at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
            at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
    Caused By: java.lang.NoClassDefFoundError: oracle/bpm/draw/diagram/ProcessDiagrammer
            at java.lang.Class.getDeclaredMethods0(Native Method)
            at java.lang.Class.privateGetDeclaredMethods(Class.java:2436)
            at java.lang.Class.privateGetPublicMethods(Class.java:2556)
            at java.lang.Class.getMethods(Class.java:1412)
            at java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1284)
            at java.beans.Introspector.getTargetMethodInfo(Introspector.java:1158)
            at java.beans.Introspector.getBeanInfo(Introspector.java:408)
            at java.beans.Introspector.getBeanInfo(Introspector.java:167)
            at javax.el.BeanELResolver$BeanProperties.<init>(BeanELResolver.java:153)
            at javax.el.BeanELResolver.getBeanProperty(BeanELResolver.java:574)
            at javax.el.BeanELResolver.getValue(BeanELResolver.java:281)
            at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:173)
            at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:200)
            at com.sun.el.parser.AstValue.getValue(AstValue.java:138)
            at com.sun.el.parser.AstNot.getValue(AstNot.java:59)
            at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:206)
            at org.apache.myfaces.trinidad.bean.FacesBeanImpl.getProperty(FacesBeanImpl.java:68)
            at oracle.adfinternal.view.faces.renderkit.rich.GoLinkRenderer.getDisabled(GoLinkRenderer.java:506)
            at oracle.adfinternal.view.faces.renderkit.rich.GoLinkRenderer.isDisabled(GoLinkRenderer.java:681)
            at oracle.adfinternal.view.faces.renderkit.rich.GoLinkRenderer.handleInaccessibility(GoLinkRenderer.java:584)
            at oracle.adfinternal.view.faces.renderkit.rich.GoLinkRenderer.encodeAll(GoLinkRenderer.java:131)
            at oracle.adfinternal.view.faces.renderkit.rich.CommandLinkRenderer.encodeAll(CommandLinkRenderer.java:158)
            at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1432)
            at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:358)
            at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:840)
            at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
            at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:422)
            at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2788)
            at oracle.adfinternal.view.faces.renderkit.rich.BreadCrumbsRenderer._renderLink(BreadCrumbsRenderer.java:420)
            at oracle.adfinternal.view.faces.renderkit.rich.BreadCrumbsRenderer._renderNode(BreadCrumbsRenderer.java:322)
            at oracle.adfinternal.view.faces.renderkit.rich.BreadCrumbsRenderer._renderContent(BreadCrumbsRenderer.java:269)
            at oracle.adfinternal.view.faces.renderkit.rich.BreadCrumbsRenderer.encodeAll(BreadCrumbsRenderer.java:162)
            at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1432)
            at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:358)
            at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:840)
            at org.apache.myfaces.trinidad.component.UIXCollection.encodeEnd(UIXCollection.java:538)
            at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
            at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:422)
            at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2788)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer._encodeHorizontalChild(PanelGroupLayoutRenderer.java:499)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer.access$100(PanelGroupLayoutRenderer.java:30)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer$EncoderCallback.processComponent(PanelGroupLayoutRenderer.java:659)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer$EncoderCallback.processComponent(PanelGroupLayoutRenderer.java:601)
            at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:170)
            at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:290)
            at oracle.adfinternal.view.faces.taglib.region.IncludeTag$FacetWrapper.processFlattenedChildren(IncludeTag.java:675)
            at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:160)
            at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:290)
            at org.apache.myfaces.trinidad.component.UIXComponent.encodeFlattenedChildren(UIXComponent.java:255)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer.encodeAll(PanelGroupLayoutRenderer.java:358)
            at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1432)
            at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:358)
            at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:840)
            at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
            at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:422)
            at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2788)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer._encodeHorizontalChild(PanelGroupLayoutRenderer.java:499)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer.access$100(PanelGroupLayoutRenderer.java:30)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer$EncoderCallback.processComponent(PanelGroupLayoutRenderer.java:659)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer$EncoderCallback.processComponent(PanelGroupLayoutRenderer.java:601)
            at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:170)
            at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:290)
            at org.apache.myfaces.trinidad.component.UIXComponent.encodeFlattenedChildren(UIXComponent.java:255)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer.encodeAll(PanelGroupLayoutRenderer.java:358)
            at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1432)
            at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:358)
            at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:840)
            at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
            at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:422)
            at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2788)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelBorderLayoutRenderer.renderSideFacet(PanelBorderLayoutRenderer.java:316)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelBorderLayoutRenderer._encodeAllWithSideFacets(PanelBorderLayoutRenderer.java:163)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelBorderLayoutRenderer.encodeAll(PanelBorderLayoutRenderer.java:83)
            at oracle.adf.view.rich.render.RichRenderer.encodeAll(RichRenderer.java:1432)
            at org.apache.myfaces.trinidad.render.CoreRenderer.encodeEnd(CoreRenderer.java:358)
            at org.apache.myfaces.trinidad.component.UIXComponentBase.encodeEnd(UIXComponentBase.java:840)
            at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
            at org.apache.myfaces.trinidad.render.CoreRenderer.encodeChild(CoreRenderer.java:422)
            at oracle.adf.view.rich.render.RichRenderer.encodeChild(RichRenderer.java:2788)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer._encodeChild(PanelGroupLayoutRenderer.java:432)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer.access$300(PanelGroupLayoutRenderer.java:30)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer$EncoderCallback.processComponent(PanelGroupLayoutRenderer.java:682)
            at oracle.adfinternal.view.faces.renderkit.rich.PanelGroupLayoutRenderer$EncoderCallback.processComponent(PanelGroupLayoutRenderer.java:601)
            at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:170)
            at org.apache.myfaces.trinidad.component.UIXComponent.processFlattenedChildren(UIXComponent.java:290)
            at org.apache.myfaces.trinidad.component.UIXComponent.encodeFlattenedChildren(UIXComponent.java:255)

    Hi Matt
    Till you get exact answer, try indirect approach. I did view page source and could not find the details in the source code. Then I clicked on image to show in new browser and thats when I got this link: You can dig into this imageRenderer.jsp file that can be found in one of the WAR files shown below. Look into EARs also that my have WARs with this jsp. Mostly there should be some sort of Servlet also to display the audit trail. I just checked from bpm/workspace Process Tracking Tab. I did not looked from EM Console tracking tabs though.
    beaHome\Oracle_SOA1\soa\applications\OracleBPMWorkspace.ear has a OracleBPMWorkspace.war file. See if this direction helps
    http://devlinux04:8001/bpm/workspace/jsf/instance/imageRenderer.jsp?imagePath=/tmp/1pLcNmhd77v9XnLCrpNs6dyby3Vzpv4QR1LdPTTf6hpCTp8Fh2KH!-206223496!1302780477267/GraphicalAuditTrail1328100234265306320.png
    Thanks
    Ravi Jegga

  • Process Chains across multiple BW instances?

    We're considering to implement a "CIF" (corporate information factory) approach for BW, using mutiple BW layers (staging, storage, analysis, across regions).  It seems to make sense from a performance management perspective.
    However one concern is the administration / monitoring.  
    Can standard BW tools (e.g. process chains, admin cockpit) customized to be used across multiple BW instances (plus ideally OLTP reporting, which we also have)? Or would we end up having to log in to each system individually?  My gut / understanding tells me it is the latter one, but would appreciate any thoughts.
    Thanks!

    Hi Ingo,
    Thanks for the information. I too have same scenario to work out.
    Is there any possibility of automatic Source/server name conversion from system A to System B while copying all the Universes and Queries.
    For Example: In BI we have an option to datasource server name change convention while transporting from one system to another system through out the landscape.
    As you said in your reply, in life cycle manager, do we need to edit connection for each & every universe or any option for one and all universes.
    Any documentation on this is appreciable...
    Please provide me information.
    Thanks in Advance.
    Regards,
    Ravi Kanth

  • Multiple processes for a host instance on one server

    Hi,
    One of the prod environment server memory utilization is getting very high every few days. I searched a bit and found that there are many processes for "BTSNTSvc64.exe" in the task manager. Whenever we restart the host instance a new process is
    getting created and the previous process is not getting killed.
    This caused multiple processes in task manager and every process is occupying some memory. The process is actually not active but it is creating some bad sectors which is causing the Memory utlization to become high.
    I am not able to kill the zombie processes either from Task manager. Server reboot is the option but wanted to know a permanent fix.
    Can you please tell me the reason as to why this is happening and also the solution? 

    How many BizTalk Hosts do you have defined on the system? If you have multiple Hosts defined then you're likely to see one host instance associated with each of the hosts. Each host instance is a service and in the "Task Manager" - Processes you will
    see multiple BTSNTSvc64.exe OR BTSNTSvc.exe * 32. This is OK is you have multiple host instances defined on your system (Services MMC will show you BizTalk Service BizTalk Group : BizTalk Host) and BizTalk Administration Console ->BizTalk Group ->Platform
    Settings -> Host Instances will also show you the different host instances. Each instance is a multi threaded process running different aspects of the BizTalk Framework/Components. So each process will occupy memory if it is "started". All this is normal
    behavior. If you're facing performance issues, you might want to ask the solution designer on their rationale for the number of hosts instances.
    So when you stop the service, it does not stop? goes into a non-responsive state? and creates another instance?
    Regards.

  • Managing multiple Postfix instances on a single host

    We have quite a few sites on our Xserve. Each site should be able to relay email out the respective unique IP on a single host; however, by default email goes out the default website of the server or which IP is the current gateway.
    NOTE: this is not a Postfix Virtual Domain Hosting > mail forwarding domains issue. Mail routes just fine to the correct email boxes. This is and issue where email going out to other mail servers originates from the box and not the respective domains and IP space.
    The solution for this is Multiple PostFix Instances. One for each website (each website has a respective IP due to SSL and DNS is correct along with MX records).
    For the outbound mail relay for our corporate network it seems there are no fields to enable a new postfix instance for each hosted or virtually hosted domain. Nor is there a way to enable SMTP to relay outgoing mail through another host unless you use a generic setting for every website on the server.
    So for a enterprise level business how do we Managing multiple Postfix instances on a single host?

    Fully on the same page with you. 110%
    Here is why I am under the impression of why each domain name needs to be as if it needs its own MTA (mail transfer agent). No matter how big or small the business.
    Just like a domain using SSL in Apache needs a dedicated IP when doing the packets . . .
    Yahoo the big dog (for small to medium online businesses 70% of their customers make purchases with Yahoo emails; which most of them are temp emails or known as aliases.) states:
    From: help.yahoo.com/l/us/yahoo/mail/postmaster/basics/postmaster-02.html
    Many mail providers follow the same guidelines:
    {quote}Segregate your lists to different IP addresses. If you maintain several lists (or clients, especially for an ASP), you may want to segregate your lists to ensure that users are marking each list on its own merits. If user sees both spam and legitimate mail from the same IP, their notifications to us will be hazy and will likely result in the spam overiding the legitimate mail.{quote}
    So why not segregate websites to email out their own dedicated IPs?
    Understandably sites that share IP space can go out the default MTA or better yet the MTA of that IP.
    This way host providers can segment groups of clients and further prevent issues with out going email.
    When email goes out a single MTA there are checks and rate limitations not just on the hops involved but from the "originating" IP address. So if site "A" has one IP and site "B" has another . . . well they both send email out the same default gateway. Take 100's of domains going out the same IP and customers (websites) start having issues getting customer communications delivered.
    {quote}Maintain accurate reverse-DNS information for your mail servers. Yahoo! Mail makes extensive DNS checks for each connection, and an accurate reverse DNS will ensure prompt processing of your connection and email.{quote}
    One mistake by one client out of 1,000 sites (or now Apple letting tens of thousands of sites able to be hosted) can get all 1,000 websites deferred and have what is called "reputation" issues.
    In the past, as companies grow, sure they get more boxes or can cluster mail servers. With economic times beyond using Parallels . . . a single Mac Xserve can handle tens of thousands of websites doing a few thousand emails a day or more. It is more of a software/setting/configuration issue than just capability.
    I remember Intel board meetings in the 90's where I (as a customer) stated put two nic cards on the mother board, standardize those rails, put twisted pair on those hard drive cables. Some things just take practical experience to see yes there is a real need and the business people are not getting it because they are focussing on the business or chasing their tail.
    Also Note the IP address has to be STATIC:
    From: help.yahoo.com/l/us/yahoo/mail/postmaster/errors/550-bl21.html;ylt=AsNxnjlX971dwy743e7j.olJHdG
    {quote}In our continuing efforts to protect our users from unsolicited email, Yahoo! Mail does not accept SMTP connections from dynamic or residential IP addresses . . .{quote}
    From: help.yahoo.com/l/us/yahoo/mail/postmaster/basics/postmaster-15.html
    {quote}Segregate your mail streams by IP addresses, domains and/or DKIM selectors since Yahoo! Mail keeps reputation data about each IP address and domain you send from. For example, by segmenting the mail stream that delivers marketing mail from another that sends transactional messages, you make it easier for Yahoo! Mail to determine and assign each mail stream's reputation. {quote}
    {quote} Use common-sense settings. While we have not published guidelines for numbers of connections you can concurrently use, we ask that you treat our resources with respect. The more you take, the fewer there are for others, which may force us to defer your connections. {quote}
    From: help.yahoo.com/l/us/yahoo/mail/postmaster//basics/postmaster-38.html
    {quote}To facilitate the smooth flow of messages between legitimate senders and Yahoo! Mail, we offer the following recommendations:
    Limit the messages you send per connection
    Yahoo! Mail accepts a maximum of 5 messages per SMTP connection. We encourage you to cap the number of messages you send to Yahoo! Mail to fall within this per-connection limit.
    When this limit is reached, no further messages will be accepted for delivery as our server automatically terminates the connection (without giving an error code). If you are sending messages to a significant number of Yahoo! Mail users, the suggestions below will help ensure uninterrupted delivery for your messages.
    Reestablish connections if you do not get an error code
    When our server terminates your connection after 5 messages have been accepted, you may try to reconnect to our MX servers immediately thereafter.
    Open concurrent connections
    You may open concurrent connections from the same server to facilitate efficient transmission of your messages. However, while we do not publish specific guidelines for the numbers of connections you can concurrently use, we ask that you treat our resources with respect. The more you take, the fewer there are for others, which may force us to deprioritize connections from your server(s).{quote}
    In the Server Admin under General one can enable IMAP with a maximum number of connections. However, for normal SMTP there is no connections cap. Unless I am wrong here.
    Domain throttling by domain is another way, but the real solution is just dedicated IPs for each website or each website to have a separate MTA. In the past this has meant a dedicated server or a physical gateway.
    Technically there should be a Virtual solution. If I can virtually host many sites and many incoming emails on dedicated IP space respective to each domain. There should be virtual MTAs on dedicated or the same respective IP space as the incoming; hence, why I gave the example of how SSL works in Apache with web servers.
    Totally get what you are saying on how currently mail works just out the default gateway since there is only one "default" MTA for the "xserve".
    Everything is good coming in, but did something somewhere miss the mark on the outgoing? Should be one for one.
    Yahoo is the big player putting the foot down or the glass half full people would say setting the mark on how outgoing mail should work when they are accepting emails.
    I am not trying to innovate, but rather just follow the rules.
    Sure mail out one MTA works no matter how many website you put on the box and it is "good enough for government work" or "looks good from my house".
    There are many people struggling with corporate communications (even the concept of corporate communications and marketing) and I think Apple could step up to the plate and help follow the standard of best practices.
    I have done research for 10 years and over the past two tested what I know to be true. Then spoke with many businesses that did not understand but had the same issue. . .
    Yahoo customers not getting their email communications and email simply not being as good as the old fashion phone call.
    So back to your question (fabulous question since every tech asks me the same thing):
    {quote}So my question to you is this: why can't you run all your domains on a single server/IP address?{quote}
    Because it is no longer 1996 and I want Apple stock to triple!
    . . . and that it no longer works for sites conducting a profitable business. We are really underachieving what America could do!
    Yahoo! is clearly saying to each business to do business communications or even marketing on separate IPs. Gmail, Hotmail, and the list goes on and on. They all follow the same thing. Yahoo! just happens to be more aggressive and has more good consumers (buyers) using their free email service. Gmail started aliases and could gain market share of buyers.
    I need to get Xserve to have one dedicated IP in and out for each independent website whether it is an Apache transaction on port 80 (443 SSL) or an email going out the postfix MTA on port 25 SMTP or any other standard alternative port (587 or 465 SSL) for that matter.
    So far everything works as expected, but the SMTP MTA out. One big default gateway per hardware.
    We missed the 1% mark. That club that gets it! I would like to see every business owner that buys an Xserve to be in that one percent club out of the box!
    Why Rob? Well because it works! Dedicated IPs work. Think about this, if you gave the postman your address and did not include your suite number more than likely your lucky if you get your mail. WORKS the same way for email.
    If your business grows you can get a few more until something once again gets abused and they start tracking MAC addresses. By then will have virtual MAC addresses like most routers can already do.
    To prevent SPAM you just set the MTA defaults to one IP per website. Let's keep it simple. This way you keep a clean reputation and one reputation per website or business. Most businesses just need one IP and cannot afford a whole server for each website/business. THINK GREEN!!! The email filtering systems (RBLs and filtering rules) already out there will weed abusers out. Let's not hurt the small to medium businesses in the process.
    Your not going to get RDNS and dedicated IP space anyhow unless your a real business.

  • Using BAPI_PO_CREATE1  in parallel processing

    Hi experts,
    I am using BAPI_PO_CRATE1 in parallel processing to create multiple Purchase Orders. The Programs is creating only one PO (the Ist one)  however it should create multiple PO as per the program and data.
    For rest of the data it is returning error message saying "No instance of object type PurchaseOrder has been created".
    Please suggest how can I fix this issue.
    Points are sure.
    Thanks & Regards.
    Anirudh

    Without looking at some poriton of the code around this call and your parallel processing logic, it will be difficult to say.

  • Parallel process in Application engine

    could any one explain me what is parallel process in Application engine where temp table is use?
    give me with example?

    Parallel processing is used when considerable amounts of data must be updated or processed within a limited amount of time, or batch window. In most cases, parallel processing is more efficient in environments containing partitioned data.
    To use parallel processing, partition the data between multiple concurrent runs of a program, each with its own dedicated version of a temporary table (for example, PS_MYAPPLTMP). If you have a payroll batch process, you could divide the employee data by last name. For example, employees with last names beginning with A through M get inserted into PS_MYAPPLTMP1; employees with last names beginning with N-Z get inserted into PS_MYAPPLTMP2.
    To use two instances of the temporary table, you would define your program (say, MYAPPL) to access to one of two dedicated temporary tables. One execution would use A-M and the other N-Z.
    The Application Engine program invokes logic to pick one of the available instances. After each program instance gets matched with an available temporary table instance, the %Table meta-SQL construct uses the corresponding temporary table instance. Run control parameters passed to each instance of the MYAPPL program enable it to identify which input rows belong to it, and each program instance inserts the rows from the source table into its assigned temporary table instance using %Table. The following diagram illustrates this process:
    Multiple program instances running against multiple temporary table instances
    There is no simple switch or check box that enables you to turn parallel processing on and off. To implement parallel processing, you must complete the following set of tasks. With each task, you must consider details regarding your specific implementation.
    Define and save temporary table records in PeopleSoft Application Designer.
    You don't need to run the SQL Build process at this point.
    In PeopleSoft Application Engine, assign temporary tables to Application Engine programs, and set the instance counts dedicated for each program.
    Employ the %Table meta-SQL construct so that PeopleSoft Application Engine can resolve table references to the assigned temporary table instance dynamically at runtime.
    Set the number of total and online temporary table instances on the PeopleTools Options page.
    Build temporary table records in PeopleSoft Application Designer by running the SQL Build process.

  • Parallel Processing - In conjuction with TWS scheduler.

    We have a .Bat file that uses upshell.exe to execute a custom script we've created.
    This custom script looks for files in the inbox and moves them to the relevant OpenBatches/OpenBatchesML folder. Once files have been moved it then runs a Parallel process up-to-load for all data. However, what we're finding is that because we're running this in parallel the .bat script is completing despite FDM still processing in the background. This is evident, as the TBATCH table shows the batch as not 100% complete. This unfortunately causes ourselves a problem as the scheduler (TWS) thinks all processing has finished and subsequent downstream processing kicks off. As I understand it this wouldn't be an issue if we'd used Serial processing and not Parallel.
    We've chosen Parallel becuase of the volumes and the limitation of our batch window. Am I correct in assuming that in principle parallel will process data faster than serial? I am currently looking at specific performance tests on my data at present to prove this.
    The real issue is that we somehow need to ensure TWS doesn't kick off downstream processes and I need to somehow have FDM create a log file for batches that complete successfully. I'm assuming it should be done within an Event script but I'm not sure which as this is quite new to me.
    Has anyone come across this issue themselves? If so, I'm looking for some guidance/examples how you've managed to get round the problem.
    Thanks in advance.

    Hi,
    Take at look at the following 2 articles. Using the concepts outlined in them you should be able to achieve what you are trying to do.
    http://odiexperts.com/interface-parallel-execution-a-new-solution
    http://odiexperts.com/processing-multiple-interface-through-single-package

  • Types of Parallel Processing

    Hi SDNites,
    I have a requiremnet where I have huge amount of data in my internal table and we want that data to be processed using parallel processing. Can you please let me know what are the different ways using which I can meet my objective.
    Please provide me details with some example as I
    Regards,
    Abhi

    Also can you please tell me whether the parallel processing requirement can be done using FM (JOB_OPEN / JOB_CLOSE). If yes how can that be done?
    Yes, it can be done this way, that's what I was referring to when I mentioned multiple background jobs. If you're not familiar with how to do it, check out the ABAP online help on the [SUBMIT .. VIA JOB|http://help.sap.com/abapdocu_70/en/ABAPSUBMIT_VIA_JOB.htm] statement, which also contains a short example. A more in-depth and good description of your options can be found in the online help [Programming with the Background Processing System|http://help.sap.com/saphelp_nw70ehp2/helpdata/en/fa/096c53543b11d1898e0000e8322d00/frameset.htm]. Here you can also find example programs for the RFC and the background job approach: [Implementing parallel processing|http://help.sap.com/saphelp_nw70ehp2/helpdata/en/fa/096e92543b11d1898e0000e8322d00/frameset.htm].
    I personally think the RFC option has the major advantage that you have already a built-in capability for managing resource consumption (using RFC server groups). I'm not aware that you get this for free with background jobs (though if you have long-running tasks you cannot use RFC, because they are executed in dialog processes and thus face the same maximum runtime limit as normal dialog users).
    Anyhow, in theory your task is rather simple, though of course the actual technical implementation can be quite challenging: Essentially you're trying to implement a [divide and conquer algorithm|http://en.wikipedia.org/wiki/Divide_and_conquer_algorithm], a real prominent example is Google's [MapReduce framework|http://en.wikipedia.org/wiki/MapReduce] (has nothing to do with ABAP, but the concept is of course valid and can be found nowadays in many applications).
    So you just need to find a way to split-up your problem into smaller sub-problems, which you then solve individually. Should you have the need for a final step that combines all individual results (the reduce step in Google's framework), you would need with background jobs an approach for figuring out if all job steps are done (so essentially a [semaphore|http://en.wikipedia.org/wiki/Semaphore_%28programming%29] or [fork-join queue|http://en.wikipedia.org/wiki/Fork-join_queue], however you want to look at it).

  • Sun idm adapter for Enterprise Service Bus (Using MQ)

    Hi
    Can you please let me know if any sun idm adapter support Enterprise Service Bus (Using MQ) ?
    Thanks

    As answer on question 1:
    No I never found any documentation from SAP that described a ESB solution. So al the knowledge must come from other vendors in your case from Sonic.
    But there is hope you can use XI in a ESB way. You must only (add) configure the ESB parts. This is done by adding a service repository for example the UDDI server in combination with some BPML engine.
    By adding it al together you can execute your business processes over multiple system platforms using SOAP in a synchronic way.
    This is the basic concept of a ESB.
    The answer to question 2.
    I don’t know if XI has build in support, but a know that there are free tools that can handle Canonical XML. So you can make a service your self to handle the Canonical XML documents.

Maybe you are looking for

  • Text ID  for text object MATERIAL does not exist - MM01

    Hi All, I am getting below error message when trying to save Material Master in MM01. Text ID  for text object MATERIAL does not exist Message no. TD603 Diagnosis You want to edit a text. However, the text ID (text type) of the specified text object

  • Custom Swatch Panel Closes on Launch CS5.1

    I've been experiencing a frustrating, bizarre situation recently. I have a Persistent custom swatch library load for an instant upon startup, then within a second it closes itself. I have to open the Swatches panel manually, then my custom library lo

  • Database Link not Active

    I am trying to create a database link from Oracle 7.3.4 to Oracle 8i. When I click the "Test" button in OEM ( after entering the relevant data) I am getting an error that reads "Database Link not Active". What am I doing wrong? can someone help?

  • Transfer Videos to Ipad2

    I have been trying to transfer videos from my pc to ipad. even converted them to mp4 but they dont get added to itunes. this totally *****!!!!! Pls Help!!!!!!!!!!!!!

  • Webdynpro Program Error while Execution

    Hi Experts, Iam new to Webdypro Programing. The Pb is While Executing Web Dyn Pro Program the Broswer gets open, after authentication i am getting error. Error is due to : The termination type was: RABAX_STATE And second time Execute Same program, in