Architecture question using deferred tasks

Hi ,
I have a requirement where I need to expire the accounts based on their inactivity for a period of time.
But this period should be reset if there is any unlock or reset password operations for this user.
Is it a good practice to add a deferred task for achieving this?
I understand that I need to scan for any differed tasks instances of expiring accounts and remove them as part of the reset process. Does this sound reasonable?
Any one have successfully implemented this kind of feature? Is there a better way to do this?
Your help is highly appreciated.
Thank you,
Ani.

Hi,
One way which I can suggest as deferred task seems little complicated :
1. Add an extended attribute for user say.. LastUpdatedDate, make is searchable.
2. Update this attribute on any kind of user update.
3. Now put a deferred task which will search for user with the above attribute value as say[ current date - x (where x is the inactivity days)] and do what ever you want to do with the returned list of user.
This way no check nothing and even 'x' is configurable with the help of a rule or something.
Hope this will help you.
Regards,
Surinder
Edited by: Surinder_Singh_Bora on Mar 31, 2008 3:40 PM

Similar Messages

  • Question related to remote weblogic deployment using wldeploy task

    Problem Description: Iam trying to perform a remote deployment using wldeploy task from one of the unix box(this box does not have a weblogic instance at all) to a remote unix weblogic server. I get the following connection exception. This script works fine when I do a remote deployment from my windows machine(this has a local weblogic server)to the same remote unix weblogic server.
    Question:
    1. Do I need to have a weblogic instance locally where this wldeploy task is executing?
    2. What configuration should be done in the remote weblogic server to support remote deployment?
    The ant task is:
    <property name="wlantjars" value="/ftmp/users/usrgrb/tmp/antjars" />
    <path id="wlappc.classpath">
    <fileset dir="${wlantjars}">
    <include name="*.jar"/>
    </fileset>
    </path>
    <taskdef name="wldeploy" classpathref="wlappc.classpath" classname="weblogic.ant.taskdefs.management.WLDeploy"/>
    <target name="deployear_dev2">
    <wldeploy user="weblogic" password="*******" adminurl="t3://he3unxd189v01:9100" action="deploy" upload="true" remote="true" source="${build.dir}/mktpx.ear" name="mktpx" targets="devCluster" />
    </target>
    I receive the following error when I execute the ant task "deployear_dev2"
    Buildfile: build.xml
    deployear_dev2:
    [wldeploy] weblogic.Deployer -remote -upload -noexit -name mktpx -source /usrdata/dev/cashdesk/gcp/mktprice/quickbuild_prototype_ccview/prototype.vws/vob/mktprice_vob/mkt_price/dist/mktpx.ear -targets devCluster -adminurl t3://he3unxd189v01:9100 -user weblogic -password ******** -deploy
    [wldeploy] weblogic.Deployer invoked with options: -remote -upload -noexit -name mktpx -source /usrdata/dev/cashdesk/gcp/mktprice/quickbuild_prototype_ccview/prototype.vws/vob/mktprice_vob/mkt_price/dist/mktpx.ear -targets devCluster -adminurl t3://he3unxd189v01:9100 -user weblogic -deploy
    [wldeploy] javax.enterprise.deploy.spi.exceptions.DeploymentManagerCreationException: [J2EE Deployment SPI:260010]Unable to connect to 't3://he3unxd189v01:9100' as user, 'weblogic'. Error received: Couldn't connect to any host
    [wldeploy] at weblogic.deploy.api.spi.deploy.WebLogicDeploymentManagerImpl.<init>(WebLogicDeploymentManagerImpl.java:121)
    [wldeploy] at weblogic.deploy.api.spi.factories.internal.DeploymentFactoryImpl.getDeploymentManager(DeploymentFactoryImpl.java:84)
    [wldeploy] at weblogic.deploy.api.tools.SessionHelper.getRemoteDeploymentManager(SessionHelper.java:496)
    [wldeploy] at weblogic.deploy.api.tools.deployer.Jsr88Operation.connect(Jsr88Operation.java:297)
    [wldeploy] at weblogic.deploy.api.tools.deployer.Deployer.perform(Deployer.java:137)
    [wldeploy] at weblogic.deploy.api.tools.deployer.Deployer.runBody(Deployer.java:88)
    [wldeploy] at weblogic.utils.compiler.Tool.run(Tool.java:158)
    [wldeploy] at weblogic.utils.compiler.Tool.run(Tool.java:115)
    [wldeploy] at weblogic.Deployer.run(Deployer.java:70)
    [wldeploy] at weblogic.Deployer.mainWithExceptions(Deployer.java:62)
    [wldeploy] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    [wldeploy] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    [wldeploy] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    [wldeploy] at java.lang.reflect.Method.invoke(Method.java:597)
    [wldeploy] at weblogic.ant.taskdefs.management.WLDeploy.invokeMain(WLDeploy.java:419)
    [wldeploy] at weblogic.ant.taskdefs.management.WLDeploy.execute(WLDeploy.java:349)
    [wldeploy] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
    [wldeploy] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    [wldeploy] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    [wldeploy] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    [wldeploy] at java.lang.reflect.Method.invoke(Method.java:597)
    [wldeploy] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:105)
    [wldeploy] at org.apache.tools.ant.Task.perform(Task.java:348)
    [wldeploy] at org.apache.tools.ant.Target.execute(Target.java:357)
    [wldeploy] at org.apache.tools.ant.Target.performTasks(Target.java:385)
    [wldeploy] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1329)
    [wldeploy] at org.apache.tools.ant.Project.executeTarget(Project.java:1298)
    [wldeploy] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    [wldeploy] at org.apache.tools.ant.Project.executeTargets(Project.java:1181)
    [wldeploy] at org.apache.tools.ant.Main.runBuild(Main.java:698)
    [wldeploy] at org.apache.tools.ant.Main.startAnt(Main.java:199)
    [wldeploy] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
    [wldeploy] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
    [wldeploy] Caused by: weblogic.deploy.api.spi.exceptions.ServerConnectionException: [J2EE Deployment SPI:260010]Unable to connect to 't3://he3unxd189v01:9100' as user, 'weblogic'. Error received: Couldn't connect to any host
    [wldeploy] at weblogic.deploy.api.spi.deploy.internal.ServerConnectionImpl.getMBeanServer(ServerConnectionImpl.java:251)
    [wldeploy] at weblogic.deploy.api.spi.deploy.internal.ServerConnectionImpl.getMBeanServerForType(ServerConnectionImpl.java:191)
    [wldeploy] at weblogic.deploy.api.spi.deploy.internal.ServerConnectionImpl.init(ServerConnectionImpl.java:147)
    [wldeploy] at weblogic.deploy.api.spi.deploy.WebLogicDeploymentManagerImpl.getNewConnection(WebLogicDeploymentManagerImpl.java:148)
    [wldeploy] at weblogic.deploy.api.spi.deploy.WebLogicDeploymentManagerImpl.<init>(WebLogicDeploymentManagerImpl.java:118)
    [wldeploy] ... 32 more
    [wldeploy] Caused by: java.io.IOException: Couldn't connect to any host
    [wldeploy] at weblogic.management.remote.common.ClientProviderBase.makeConnection(ClientProviderBase.java:156)
    [wldeploy] at weblogic.management.remote.common.ClientProviderBase.newJMXConnector(ClientProviderBase.java:79)
    [wldeploy] at javax.management.remote.JMXConnectorFactory.newJMXConnector(JMXConnectorFactory.java:338)
    [wldeploy] at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:247)
    [wldeploy] at weblogic.deploy.api.spi.deploy.internal.ServerConnectionImpl.getMBeanServer(ServerConnectionImpl.java:240)
    [wldeploy] ... 36 more
    [wldeploy] Caused by: javax.naming.NamingException: Couldn't connect to any host [Root exception is org.omg.CORBA.OBJECT_NOT_EXIST: Unknown object in LOCATE_REQUEST  vmcid: 0x0  minor code: 0  completed: No]
    [wldeploy] at weblogic.corba.j2ee.naming.Utils.wrapNamingException(Utils.java:83)
    [wldeploy] at weblogic.corba.j2ee.naming.ORBHelper.getORBReferenceWithRetry(ORBHelper.java:590)
    [wldeploy] at weblogic.corba.j2ee.naming.ORBHelper.getORBReference(ORBHelper.java:547)
    [wldeploy] at weblogic.corba.j2ee.naming.InitialContextFactoryImpl.getInitialContext(InitialContextFactoryImpl.java:85)
    [wldeploy] at weblogic.corba.j2ee.naming.InitialContextFactoryImpl.getInitialContext(InitialContextFactoryImpl.java:31)
    [wldeploy] at weblogic.jndi.WLInitialContextFactory.getInitialContext(WLInitialContextFactory.java:41)
    [wldeploy] at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
    [wldeploy] at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
    [wldeploy] at javax.naming.InitialContext.init(InitialContext.java:223)
    [wldeploy] at javax.naming.InitialContext.<init>(InitialContext.java:197)
    [wldeploy] at weblogic.management.remote.common.ClientProviderBase.makeConnection(ClientProviderBase.java:143)
    [wldeploy] ... 40 more
    [wldeploy] Caused by: org.omg.CORBA.OBJECT_NOT_EXIST: Unknown object in LOCATE_REQUEST vmcid: 0x0 minor code: 0 completed: No
    [wldeploy] at weblogic.iiop.LocateReplyMessage.needsForwarding(LocateReplyMessage.java:171)
    [wldeploy] at weblogic.iiop.IORManager.locateInitialReference(IORManager.java:254)
    [wldeploy] at weblogic.corba.orb.ORB.resolve_initial_references(ORB.java:258)
    [wldeploy] at weblogic.corba.client.naming.ClientORBInfo.<init>(ClientORBInfo.java:34)
    [wldeploy] at weblogic.corba.client.naming.ClientORBHelper.createORBInfo(ClientORBHelper.java:42)
    [wldeploy] at weblogic.corba.j2ee.naming.ORBHelper.cacheORB(ORBHelper.java:314)
    [wldeploy] at weblogic.corba.j2ee.naming.ORBHelper.cacheORBAndCreateURL(ORBHelper.java:323)
    [wldeploy] at weblogic.corba.j2ee.naming.ORBHelper.getORBReferenceWithRetry(ORBHelper.java:583)
    [wldeploy] ... 49 more
    BUILD FAILED
    /usrdata/dev/cashdesk/gcp/mktprice/quickbuild_prototype_ccview/prototype.vws/vob/mktprice_vob/mkt_price/build/build.xml:366: weblogic.Deployer$DeployerException: weblogic.deploy.api.tools.deployer.DeployerException: Unable to connect to 't3://he3unxd189v01:9100': Unknown object in LOCATE_REQUEST. Ensure the url represents a running admin server and that the credentials are correct. If using http protocol, tunneling must be enabled on the admin server.
    Total time: 9 seconds

    regarding error:
    Caused by: org.omg.CORBA.OBJECT_NOT_EXIST: Unknown object in LOCATE_REQUEST vmcid: 0x0 minor code: 0 completed: No
    Make sure to place the wlfullclient.jar at the beginning of the classpath ...any other WLS specific Jars need not to be added additionally. For above error please refer to : Client SAF error
    Few Things:
    1). When I execute the ant build from a remote box , should I have a weblogic server running...the reason I ask is..does the wldeploy task work only if there is an active weblogic domain in the local machine. When I execute the same build from my windows machine where I have a local instance of weblogic , it works uccessfully .Whenever you try to deploy any application on WebLogic Domain then the Admin Server must be running. Because the deployment entries goes inside the "config.xml" and the original copy of this file is maintained by AdminServer only. So the Admin Server must be running for any kind of configuration changes or for Deployment.
    2). I am told that http protocol is not an option in my work place and I have to use t3 protocol only. In that case, based on the error below, is it possible that the connection between my local unix box and the remote weblogic box is stricted? How to I test the connectivity using t3? I pinged the server from the local unix server and it came back with reply, but could not telnet to that remote box nor ftp to that box does not work.You can check t3 protcol is working fine or not by using the following one line command:
    java weblogic.Admin -url t3://he3unxd189v01:9100 -username weblogic  -password weblogic    PING
    If above command fails to ping the server it means either you are using a wrong HostName & Port OR your N/W is doesnot allow t3 protocol connections OR there may be a N/W Issue.
    Thanks
    Jay SenSharma

  • Create a Task, for use in "Deferred Task"

    I am in the processing of creating Deferred Tasks for my Update-User workflow.
    I know how to create these easily. My problem is : the actual "Task" itself, which will be called upon from the Workflow.
    I don't know the proper syntax for it.
    For instance, below is the code I am using for my "Send Email Task". This task is supposed to send an automatic email notification.
    *<?xml version='1.0' encoding='UTF-8'?>*
    *<!DOCTYPE TaskDefinition PUBLIC 'waveset.dtd' 'waveset.dtd'>*
    *<!-- MemberObjectGroups="#ID#Top" authType="UserAdminTask" createDate="Thu Jul 16 15:22:08 EEST 2009" extensionClass="WFProcess" name="Send Email Task" visibility="invisible"-->*
    *<TaskDefinition name='Send Email Task' creator='%STARTUP%Configurator' createDate='1247746928617' lastModifier='%STARTUP%Configurator' lastModDate='1247746928617' repoMod='1247746928170' primaryObjectClass='TaskDefinition' wstype='ProvisioningTask' taskType='Workflow' executor='com.waveset.workflow.WorkflowExecutor' syncControlAllowed='true' execMode='sync' execLimit='0' resultLimit='3600' resultOption='delete' visibility='invisible' progressInterval='0'>*
    *<Extension>*
    *<WFProcess maxSteps='0' audit='true'>*
    *<Variable name='user' input='true'>*
    *<Comments>&#xA; A user view. This is required.&#xA; </Comments>*
    *</Variable>*
    *<Variable name='backgroundProvisioning' input='true'>*
    *</Variable>*
    *<Variable name='provisioningRetryButton' value='true' input='true'>*
    *<Comments>&#xA; Set to "true" to enable the inclusion of a Retry link&#xA; in the task result if the provisioning fails.&#xA; </Comments>*
    *</Variable>*
    *<Variable name='approvals'>*
    *<Comments>&#xA; Returned from the Lighthouse Approval process. Contains the&#xA; approval structure. The approvals.approved variable set if&#xA; all approvals were successful. This is passed into the Notify&#xA; process later for post-provisioning notifications.&#xA; </Comments>*
    *</Variable>*
    *<Variable name='userCreated'>*
    *<Comments>&#xA; Set to "true" from the Provision workflow when the&#xA; Lighthouse account has been created.&#xA; </Comments>*
    *</Variable>*
    *<Variable name='sunset'>*
    *<Comments>&#xA; Object containing information for registering a sunset date/time.&#xA; </Comments>*
    *</Variable>*
    *<Variable name='error'>*
    *<Comments>Set in the event of unusual processing errors.</Comments>*
    *</Variable>*
    *<Variable name='options'>*
    *<Comments>Options to pass to the provisioning task regarding resource&#xA; provisioning.&#xA; </Comments>*
    *</Variable>*
    *<Transition to='end'>*
    *<Comments>&#xA; Terminate if we encounter unusual errors (not provisioning errors).&#xA; </Comments>*
    *<ref>error</ref>*
    *</Transition>*
    *<Activity id='0' name='start'>*
    *<Transition to='Notify'/>*
    *</Activity>*
    *<Activity id='1' name='Notify'>*
    *<Action id='0' name='Email' application='com.waveset.provision.WorkflowServices'>*
    *<Argument name='op' value='notify'/>*
    *<Argument name='template' value='Send Email Now'/>*
    *</Action>*
    *<Transition to='End'/>*
    *</Activity>*
    *<Activity id='2' name='end'>*
    *<WorkflowEditor x='428' y='275'/>*
    *</Activity>*
    *</WFProcess>*
    *</Extension>*
    *<MemberObjectGroups>*
    *<ObjectRef type='ObjectGroup' id='#ID#Top' name='Top'/>*
    *</MemberObjectGroups>*
    *</TaskDefinition>*
    I am not sure if my syntax is correct?
    Any tips?

    Thanks again, sbalu.
    I may have found the error (although, I don't understand what it means).
    Something about *"Missing View"*
    Catalog#format() Entry locale=null, key=SES_WORKITEM_MISSING_VIEW, defVal=SES_WORKITEM_MISSING_VIEW
    20091126 08:28:22.701 TaskThread(0x0052fecf) Catalog#format() Info parameters=null
    20091126 08:28:22.701 TaskThread(0x0052fecf) Catalog#format() Info tmp=null
    20091126 08:28:22.701 TaskThread(0x0052fecf) Catalog#format() Info pattern=Missing view id.
    20091126 08:28:22.701 TaskThread(0x0052fecf) Catalog#format() Info msg=Missing view id.
    20091126 08:28:22.701 TaskThread(0x0052fecf) Catalog#format() Exit returned= Missing view id.
    20091126 08:28:23.092 TaskThread(0x0052fecf) DeferredScanner#addTaskResult() Entry name=Send Email Task, ti=TaskInstance:Send Email Task tdalton
    20091126 08:28:23.092 TaskThread(0x0052fecf) Catalog#format() Entry locale=null, key=SES_WORKITEM_MISSING_VIEW, defVal=SES_WORKITEM_MISSING_VIEW
    20091126 08:28:23.092 TaskThread(0x0052fecf) Catalog#format() Info parameters=null
    20091126 08:28:23.092 TaskThread(0x0052fecf) Catalog#format() Info tmp=null
    20091126 08:28:23.092 TaskThread(0x0052fecf) Catalog#format() Info pattern=Missing view id.
    20091126 08:28:23.092 TaskThread(0x0052fecf) Catalog#format() Info msg=Missing view id.
    20091126 08:28:23.092 TaskThread(0x0052fecf) Catalog#format() Exit returned= Missing view id.
    20091126 08:28:23.092 TaskThread(0x0052fecf) DeferredScanner#addTaskResult() Exit void
    20091126 08:28:23.092 TaskThread(0x0052fecf) DeferredScanner#launchTask() Data executeOnce= false
    20091126 08:28:23.092 TaskThread(0x0052fecf) DeferredScanner#launchTask() Exit returned= false
    20091126 08:28:23.092 TaskThread(0x0052fecf) DeferredScanner#processTrigger() Exit returned= false
    20091126 08:28:23.092 TaskThread(0x0052fecf) DeferredScanner#endObject() Entry no args
    20091126 08:28:23.092 TaskThread(0x0052fecf) DeferredScanner#endObject() Exit void
    20091126 08:28:23.092 TaskThread(0x0052fecf) DeferredScanner#processObject() Exit returned= false
    20091126 08:28:23.092 TaskThread(0x0052fecf) DeferredScanner#processDeferredTasks() Data idOrName== #ID#6BF7-:B3702F65421:491FD113-:D0E4376B71977D1D
    20091126 08:28:23.092 TaskThread(0x0052fecf) DeferredScanner#processDeferredTasks() Data nameOrId== ukaila
    20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#processDeferredTasks() Data object lastMod= 24
    20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#processObject() Entry obj=User:ukaila
    20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#processObject() Data tasks= [ { accountId=ukaila, task=Send Email Task, name=Send Email Task, date=11/25/2009 11:15:00 } ]
    20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#processObject() Data task list object= { accountId=ukaila, task=Send Email Task, name=Send Email Task, date=11/25/2009 11:15:00 }
    20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#processTrigger() Entry obj=User:ukaila, trig={ accountId=ukaila, task=Send Email Task, name=Send Email Task, date=11/25/2009 11:15:00 }
    20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#processTrigger() Data start= 11/25/09 11:15 AM
    20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#processTrigger() Data _now= 11/26/09 8:28 AM
    20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#processTrigger() Data task definition= CSC Send Email Task
    20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#startObject() Entry obj=User:ukaila
    20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#startObject() Entry type=User, nameOrId=ukaila
    20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#startObject() Exit void
    20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#startObject() Exit void
    20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#processTrigger() Data task template= null
    20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#processTrigger() Data task definition= TaskDefinition:Send Email Task
    20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#processTrigger() Data task template= TaskTemplate:null
    20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#launchTask() Entry obj=User:ukaila, trig={ accountId=ukaila, task=Send Email Task, name=Send Email Task, date=11/25/2009 11:15:00 }, tt=TaskTemplate:null
    20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#launchTask() Data taskName= null
    20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#launchTask() Data generated taskName= Send Email Task ukaila
    20091126 08:28:23.123 TaskThread(0x0052fecf) TaskTemplate#setTaskName(String) Entry no args
    20091126 08:28:23.123 TaskThread(0x0052fecf) TaskTemplate#setTaskName(String) Exit void
    20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#launchTask() Data orgName= null
    20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#launchTask() Data owner= null
    20091126 08:28:23.123 TaskThread(0x0052fecf) DeferredScanner#launchTask() Data subjectLength= 29,650
    20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#create(Element) Entry element=[Map: null]
    20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#getConstructor() Entry element=[Map: null]
    20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#getConstructor() Info elname=Map
    20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#getConstructor() Info classAtt=null
    20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#getConstructor() Info classAtt=null
    20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#getConstructor() Info regName=Map
    20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#getConstructor() Exit returned= com.waveset.util.XmlObjectFactory$Registration@1edf84f
    20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#create(Element) Info handler=com.waveset.util.XmlHashMap@493dca
    20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#create(Element) Entry element=[Locale: null]
    20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#getConstructor() Entry element=[Locale: null]
    20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#getConstructor() Info elname=Locale
    20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#getConstructor() Info classAtt=null
    20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#getConstructor() Info classAtt=null
    20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#getConstructor() Info regName=Locale
    20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#getConstructor() Exit returned= com.waveset.util.XmlObjectFactory$Registration@77a748
    20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#create(Element) Info handler=com.waveset.util.XmlLocale@1876e5d
    20091126 08:28:23.123 TaskThread(0x0052fecf) XmlObjectFactory#create(Element) Exit returned= en_US

  • Multiple deferred tasks

    Hi,
    I want to add several deferred tasks to a user.
    Each deferred task should invoke the same
    workflow, but use different parameters (arguments).
    The documentation suggests that this can be done:
    "This method supports the ability to add multiple versions
    of the same task definition to a user.
    See the description of the taskDefinition argument for more information."
    However, the description of the taskDefinition argument
    does not offer any more information (that I can understand, at least).
    Everytime I try to add another deferred task to the user,
    the original deferred task gets overwritten.
    Has anyone done this? If so how?
    Thanks,
    John I

    We had a similar situation and came up with the same solution. It's cumbersome, but works.
    Here's some sample code, in case anyone needs it --
    user = accountId of the user to receive the deferred tasks
    dateList = a list of dates for the task in question.
    taskName = the name of the task to be executed.
    <Activity id='4' name='Set Tasks'>
              <Variable name='dl'/>
              <Variable name='object'/>
              <Action id='0' name='Checkout User' application='com.waveset.session.WorkflowServices'>
                <Argument name='op' value='checkoutObject'/>
                <Argument name='type' value='User'/>
                <Argument name='name' value='$(user)'/>
              </Action>
              <Action id='1' name='Set Task Property'>
                <expression>
                <!-- FYI, the variable 'object' now contains the
                       results of the checkoutObject call.  This sleight
                       of hand is in the Workflow documentation for
                       the checkoutObject Session Workflow Service.
                 -->     
                  <block>
                      <dolist name='dl'>
                          <ref>dateList</ref>
                           <cond>
                                <isnull>
                                    <invoke name='getProperty'>
                                        <ref>object</ref>
                                        <s>tasks</s>
                                    </invoke>
                                </isnull>
                                <invoke name='setProperty'>
                                    <ref>object</ref>
                                    <s>tasks</s>
                                    <list>
                                        <block >
                                            <defvar name='obj'>
                                                <new class='com.waveset.object.GenericObject'/>
                                            </defvar>
                                            <set>
                                                <ref>obj</ref>
                                                <s>name</s>
                                                <ref>taskName</ref>
                                            </set>
                                            <set>
                                                <ref>obj</ref>
                                                <s>date</s>
                                                <invoke name='parse'>
                                                    <new class='java.text.SimpleDateFormat'>
                                                        <s>MM/dd/yyyy</s>
                                                    </new>
                                                    <ref>dl</ref>
                                                </invoke>
                                            </set>
                                            <set>
                                                <ref>obj</ref>
                                                <s>description</s>
                                                <ref>dl</ref>
                                            </set>
                                            <ref>obj</ref>
                                        </block>
                                    </list>
                                </invoke>
                                <invoke name='setProperty'>
                                    <ref>object</ref>
                                    <s>tasks</s>
                                        <block >
                                            <appendAll>
                                                <invoke name='getProperty'>
                                                    <ref>object</ref>
                                                    <s>tasks</s>
                                                </invoke>
                                                <block>
                                                    <defvar name='obj'>
                                                        <new class='com.waveset.object.GenericObject'/>
                                                    </defvar>
                                                    <set>
                                                        <ref>obj</ref>
                                                        <s>name</s>
                                                        <ref>taskName</ref>
                                                    </set>
                                                    <set>
                                                        <ref>obj</ref>
                                                        <s>date</s>
                                                        <invoke name='parse'>
                                                            <new class='java.text.SimpleDateFormat'>
                                                                <s>MM/dd/yyyy</s>
                                                            </new>
                                                            <ref>dl</ref>
                                                        </invoke>
                                                    </set>
                                                    <set>
                                                        <ref>obj</ref>
                                                        <s>description</s>
                                                        <ref>dl</ref>
                                                    </set>
                                                    <ref>obj</ref>
                                                </block>
                                            </appendAll>
                                        </block>
                                </invoke>
                             </cond>
                      </dolist>
                  </block>
                </expression>
              </Action>
              <Action id='2' name='Checkin the User Object' application='com.waveset.session.WorkflowServices'>
                <Argument name='op' value='checkinObject'/>
                <Argument name='object' value='$(object)'/>
              </Action>
            <Transition to='end'/>
          </Activity>Jason

  • Deploying the SCCM 2012 Client to WES 7 devices that are locked down with the FBWF using 2007 task sequence via WEDM.

    I'm wondering how people are migrating their embedded devices that are using the FBWF. I've done some googling and it seems like most people are just re-imaging the devices and after migrating a single device i see why. Its not a pretty process. This will
    be a long description but ultimately my question stems more from trying to find a better way to execute the device migration from 2007 to 2012.
    Some back ground on my situation might be in order here. I'm in the process of wrapping up our 2007 to 2012 migration. We have a 2007 infrastructure that was a central server with 2 primaries and 286 secondary site servers. I've consolidated that to a single
    2012 primary site server that hosts all the main roles. There are 2 more servers in the data centers both operating solely as push distribution points I'll refer to them as 2012 01 02 and 03. I'm over half way through the migration and so far haven't needed
    to offload any site roles. There are almost 10,000 clients now reporting to the 2012 site server and almost a 100 field servers pulling content from 2012 02 as their source dp as pull dp is the only way forward for this many devices. I've read the horror stories
    of trying spin up 200 plus push dps. We are running PKI. I'm at the point now where i need to start migrating the Windows Embedded Seven Standard clients that have the 2007 sccm client on them with WEDM for write filter handling.
    What i'm wondering is if anyone has any pointers for me regarding migrating the WES 7 devices. My plan that i've come up with is to somehow script the process using a 2007 WEDM Task Sequence to try and migrate them over to 2012. Things are complicated as
    I need to somehow script the install, the policy checkin, hardware inventory, software inventory, and validate the SCEP client installs before I reboot the device one last time to enable the FBWF. How I handled the SCCM 2007 client install on these devices
    when they were provisioned was to just create a batch file that would sleep for ten minutes then check to see if the inventoryagent.log file had been created yet. I realize now that is inefficient as i can kick off the inventory using a WMI method once the
    client has installed. Also I need to make sure the machine gets its first policy as that is how it creates the communication using PKI through that first policy transfer and that also finalizes the client install. The biggest piece i'm uncertain about in this
    regard is the SCEP client.
    I had to change the SCEP client install from yes to no in the default client settings as we have some Mcaffee servers that can't have the SCEP client on them. I have incremental updates enabled on the collection that has the policy that installs the SCEP
    client but this will take an unknown amount of time unless i force the environment to update as the device starts in 2012 install, or if I could kick off the SCEP isntall... IDK. I'm also wondering if i should keep the device in the migration process until
    i validate it has its proper scep policy applied which I believe can be validated by a registry key somewhere.
    Once the 2012 client gets installed will that cause it to lose its place within the 2007 Task Sequence? Considering its going to take a minimum of 2 reboots I'd normally use the task sequence to handle its progression through the process.
    I'm also considering trying to use an Orchestrator runbook, as that would be a good way to keep track of the migration process as each device migrates. Especially since this might take several seperate scripts.
    I'm going to take a stab at scripting the migration process, but if anyone has any pointers that might make this a less complicated I'd really appreciate it as I've got about 3000 of these devices that need to be migrated over. The other things i've learned
    the hard way is any time you have something this complicated over the course of 3000 devices you will run into unknowns and the failure rate increases. I'm in the precarious position of having to not only build this process out but in some situations have
    it complete in the shortest amount of time possible as we have sites running 24x7. I know the end users behavior all to well and they will just keep hitting the power button sometimes even though their not supposed to so they can get their device functional
    again. In those situations i'd end up, if i'm lucky with a device that no longer has a healthy SCCM client in either environment and the write filter disabled.
    So like i said any pointers anyone could throw my way i'd really appreciate. I manually went through the migration process on a single device for proof of concept and ended up with almost 2 pages of pseudo code for my migration script/scripts.
    Thanks,
    -K.R.

    Hi,
    In R2 there are some new variables you can use to solve this,
    http://ccmexec.com/2014/12/smstsmplistrequesttimeout-value-in-milliseconds/
    In Sp1 though adding a step to sleep for 2-5 minuter after reboot and before the application install step is a common workaround.. a powershell command with "Start-Sleep
    -s 120" should do it. 
    /Jörgen
    -- My System Center blog ccmexec.com -- Twitter
    @ccmexec

  • How to check if a user has a deferred task or not?

    Right now, I use getView and then check for the deferred task as below
    1)
    <Action id='0' application='com.waveset.session.WorkflowServices'>
    <Argument name='op' value='getView'/>
    <Argument name='type' value='User'/>
    <Argument name='id' value='$(accountId)'/>
    </Action>
    2)
    <Transition to='Add Deferred Task'>
    <isnull>
    <ref>view.accounts[Lighthouse].properties.tasks[Task Name]</ref>
    </isnull>
    </Transition>
    Is there a quicker way to combine both steps 1 and 2 into one step?

    Here's my code
    <Action id='0' application='com.waveset.session.WorkflowServices'>
    <Argument name='op' value='queryObjectNames'/>
    <Argument name='type' value='User'/>
    <Argument name='single' value='true'/>
    <Argument name='attributes'>
    <map>
    <s>accountId</s>
    <ref>accountId</ref>
    <s>deferredTaskDate</s>
    <s>Task 123</s>
    </map>
    </Argument>
    </Action>
    So I'll pass in 2 parameters, the accountId and a task name. I want to see if this user has that particular task name or not.
    In the WF trace, I see this
    Argument attributes = {accountId=ABC, deferredTaskDate=Task 123}
    queryResult is null because it could not find this user even though user ABC exists in IDM and has a deferred task named Task 123.
    Is my code wrong and how do I use AttributeCondition in the queryObjectNames above?

  • Oracle VM Server for SPARC - network multipathing architecture question

    This is a general architecture question about how to best setup network multipathing
    I am reading the "Oracle VM Server for SPARC 2.2 Administration Guide" but I can't find what I am looking for.
    From reading the document is appears it is possible to:
    (a) Configure IPMP in the Service Domain (pg. 155)
    - This protects against link level failure but won't protect against the failure of an entire Service LDOM?
    (b) Configure IPMP in the Guest Domain (pg. 154)
    - This will protect against Service LDOM failure but moves the complexity to the Guest Domain
    - This means the there are two (2) VNICs in the guest though?
    In AIX, "Shared Ethernet Adapter (SEA) Failover" it presents a single NIC to the guest but can tolerate failure of a single VIOS (~Service LDOM) as well as link level failure in each VIO Server.
    https://www.ibm.com/developerworks/mydeveloperworks/blogs/aixpert/entry/shared_ethernet_adapter_sea_failover_with_load_balancing198?lang=en
    Is there not a way to do something similar in Oracle VM Server for SPARC that provides the following:
    (1) Two (2) Service Domains
    (2) Network Redundancy within the Service Domain
    (3) Service Domain Redundancy
    (4) Simplify the Guest Domain (ie single virtual NIC) with no IPMP in the Guest
    Virtual Disk Multipathing appears to work as one would expect (at least according the the documentation, pg. 120). I don't need to setup mpxio in the guest. So I'm not sure why I would need to setup IPMP in the guest.
    Edited by: 905243 on Aug 23, 2012 1:27 PM

    Hi,
    there's link-based and probe-based IPMP. We use link-based IPMP (in the primary domain and in the guest LDOMs).
    For the guest LDOMs you have to set the phys-state linkprop on the vnets if you want to use link-based IPMP:
    ldm set-vnet linkprop=phys-state vnetX ldom-name
    If you want to use IPMP with vsw interfaces in the primary domain, you have to set the phys-state linkprop in the vswitch:
    ldm set-vswitch linkprop=phys-state net-dev=<phys_iface_e.g._igb0> <vswitch-name>
    Bye,
    Alexander.

  • Limitations on Using Human Task advance routing rules and stages

    In one of our requirement we have used human task with different number of stages (14 stages ) and for all this we are using only one human task component and to route the task through different stages I am using advance routing rules (30 rules),we have exposed this through  bpel .My code is working fine .
    My question is:-
    1- Do this kind of design contain flaws, is there is any restriction on using of number of stages and number of routing rules. Is there is any best practise which suggests that we cannot have more than certain number of stages or routing rules..??
    2-Is it feasible to use different human task component for each of the human task stages and route the data using business rule, but that will be very exhausted and unnecessarily making bpel heavier, also the front end people will be having more number of bpm urls which will make their work tedious.
    Please suggest .
    Thank you

    This doesn't sound good. That's an EJB internal to BPEL if I'm not mistaken. Did the install go ok? Has this ever worked before?
    I'd check the logs on startup for any sign of an exception. This may be the symptom of a problem which will be logged on startup.
    Also, search metalink and open an SR -- this EJB isn't something you need to configure in a normal install -- at least not that I'm familiar with.

  • Architecture question, global VDI deployment

    I have an architecture question regarding the use of VDI in a global organization.
    We have a pilot VDI Core w/remote mysql setup with 2 hypervisor hosts. We want to bring up 2 more Hypervisor hosts (and VDI Secondaries) in another geographic location, where the local employees would need to connect desktops hosted from their physical location. What we don't want is to need to manage multiple VDI Cores. Ideally we would manage the entire VDI implementation from one pane of glass, having multiple Desktop Provider groups to represent the geographical locations.
    Is it possible to just setup VDI Additional Secondaries in the remote locations? What are the pros and cons of that?
    Thanks

    Yes, simply bind individual interfaces for each domain on your web server,
    one for each.
    Ensure the appropriate web servers are listening on the appropriate
    interfaces and it will work fine.
    "Paul S." <[email protected]> wrote in message
    news:407c68a1$[email protected]..
    >
    Hi,
    We want to host several applications which will be accessed as:
    www.oursite.com/app1 www.oursite.com/app2 (all using port 80 or 443)
    Is it possible to have a separate Weblogic domain for each application,all listening
    to ports 80 and 443?
    Thanks,
    Paul

  • Deferred Tasks - Passing Variables into Workflow

    Hi everyone
    I am experiencing difficulties with deferred tasks in IDM 8.1. I have managed to create a deferred task on a user, with the task name being ‘Generate Email’. I also passed in an attribute ‘id’, and these can be seen in the user view under waveset.properties.tasks.
      <Activity id='1' name='Add Deferred Task'>
                    <Action id='1' application='com.waveset.session.WorkflowServices'>
                        <Argument name='op' value='addDeferredTask'/>
                        <Argument name='type' value='User'/>
                        <Argument name='name'>
                            <ref>accountId</ref>
                        </Argument>
                        <Argument name='authorized' value='true'/>
                        <Argument name='subject'>
                            <s>Configurator</s>
                        </Argument>
                        <Argument name='task'>
                            <ref>taskToAdd</ref>
                        </Argument>
                        <Argument name='date'>
                            <new class='java.util.Date'/>
                        </Argument>
                        <Argument name='owner'>
                            <ref>WF_CASE_OWNER</ref>
                        </Argument>
                        <Argument name='taskDefinition'>
                            <new class='com.waveset.object.GenericObject'>
                                <map>
                                    <s>id</s>
                                    <ref>accountId</ref>
                                </map>
                            </new>
                        </Argument>
                    </Action>
                </Activity>I have set up a scheduler that correctly scans all the user objects for this workflow name, and the ‘Generate Email’ workflow is periodically run.
    The problem is when it gets to the Generate Email workflow, all the variables that were set when the deferred task was created are gone. Both <ref>id</ref> and <Variable name=’id’ input=’true’/> return null.
    Setting the following in the TaskSchedule object did not help, as the string value $(id) is passed into the workflow instead of the id itself. I cannot debug the TaskSchedule as the Netbeans IDE does not allow me to put in breakpoints on this file.
    <Variables>
        <Object>
          <Attribute name='id' value='$(id)'/>
        </Object>
      </Variables>My question is, how do I pass variables into a workflow via a deferred task?

    Hi,
    Here is an example that I found that may assist.
    <Activity name='setDefTask'>
         <Action application='com.waveset.session.WorkflowServices'>
           <Argument name='op' value='addDeferredTask'/>
           <Argument name='name' value='$(user)'/>
           <Argument name='task' value='$(taskType)'/>
           <Argument name='date' value='$(date)'/>
           <Argument name='description' value='$(taskDescription)'/>
           <Argument name='taskDefinition'>
              <Object>
                  <Attribute name='Arg1' value='value1'/>
                  <Attribute name='Arg2' value='value2'/>
                  <Attribute name='Arg3' value='value3'/>
              </Object>
           </Argument>
         </Action>
         <Transition to='end'/>
    </Activity>Hope it helps

  • Generate clients for multiple WSLDs using 'clientgen' task.

    Issue -
    I am trying to generate WS clients for multiple Services(WSDLs). I am using 'clientgen' task. But a 'clientgen'task accepts only one WSDL. If I have more one that one 'clientgen' task, some of the
    common classes (generated) are overwritten.
    For eg.
    WSDL for Contract 1
    <s:element name="executeResponse">
    <s:complexType>
    <s:sequence>
    <s:element ref="soa:CancelOrderResponse"/>
    </s:sequence>
    </s:complexType>
    </s:element>
    <message name="executeSoapOut">
    <part name="parameters" element="s0:executeResponse"/>
    </message>
    <portType name="CancelOrderSoap">
    <operation name="execute">
    <input message="s0:executeSoapIn"/>
    <output message="s0:executeSoapOut"/>
    </operation>
    </portType>
    <service name="CancelOrder">
    <port name="CancelOrderSoap" binding="s0:CancelOrderSoap">
    <soap:address location="http://localhost:7001/CoreWSProject/sync/CancelOrder.jws"/>
    </port>
    </service>
    WSDL for Contract 2
    <s:element name="executeResponse">
    <s:complexType>
    <s:sequence>
    <s:element ref="soa:CancelOrderResponse"/>
    </s:sequence>
    </s:complexType>
    </s:element>
    <message name="executeSoapOut">
    <part name="parameters" element="s0:executeResponse"/>
    </message>
    <portType name="CancelOrderSoap">
    <operation name="execute">
    <input message="s0:executeSoapIn"/>
    <output message="s0:executeSoapOut"/>
    </operation>
    </portType>
    <service name="CancelOrder">
    <port name="CancelOrderSoap" binding="s0:CancelOrderSoap">
    <soap:address location="http://localhost:7001/CoreWSProject/sync/CancelOrder.jws"/>
    </port>
    </service>
    GENERATED CODE
    A class ExecuteResponse will be generated for each service. This class gets overwritten if you use
    multiple 'clientgen' tasks.
    Question
    Is there way to specify multiple WSDLs in 'clientgen' task so that i should be able to package
    all the clientcode in one jar without any namespace issues ?
    - Sandeep V

    If the classes have the same namespace, by default, the same Java package name will be created. There is a packageName attribute on the clientgen Ant task, which provides some control over the Java package name that is used.
    There is no way to specify multiple WSDLs to the clientgen Ant task. This makes sense if you subscribe to the notion that a WSDL represents a Web Service. It sounds like you can achieve what you want by:
    1. Running clientgen on the first WSDL,
    2. Use Ant to extract the contents of the generated JAR into a directory (with a name like clientgen),
    3. Running clientgen on the next WSDL,
    4. Use Ant to extract the contents of the generated JAR into the same clientgen directory,
    5. etc, etc.
    Afterwards, you would just need to use Ant to JAR up the clientgen directory. Again, you'll want to specify a different packageName attribute for each WSDL.
    HTH,
    Mike Wooten

  • Bulk load to change deferred task date

    We initially loaded users with password expirations and a defered task we created to send them emails starting 15 days before the password expires. We want to move these dates out. Can we do a bulk load and change the dates?
    Thanks,
    Larry

    the deferred task scanner is expensive too. so much so in fact, that we dont use it. in fact, we keep a users "nextTaskDate" as a queriable attribute, which lets us get a result set of users that have tasks on that date. no more iterating through the users to find them. with this, its much easier to do what i had reccommended earlier.
    --Dana                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • ActiveSync:Deferred Task role provision

    Hello,
    During active sync I am trying to provision an IDM role in some future date (ex. 30 days)
    on the same date I will need to remove the current IDM role.
    What is the best way to accomplish this?
    1) Should be done using a Deferred Task?
    Where I use a work-flow that removes the current role and then adds the new role?
    If so is the done by executing a workflow using viewOptions.Process?
    <Field name='viewOptions.Process'>
      <Disable>
        <neq>
          <ref>activeSync.DeferredFlag</ref>
          <s>true</s>
        </neq>
      </Disable>
      <Expansion>
        <s>MyDeferredTaskWorkflow</s>
      </Expansion>
    </Field>2) Should this be done by manipulating the Role Date ?
    http://docs.sun.com/app/docs/doc/820-5822/byahf?l=en&a=view&q=role+date
    This is for IDM 8.1
    All input is welcome and appreciated.
    Thank you

    This is an example of a field at the end of your activeSync form to set the workflow that invokes a deferred task (ours is quite complicated)
    <Field name='viewOptions.Process'>
    <Comments> Define custom workflow to run for each feed operation. Use null if the standard workflow for that operation should be used.</Comments>
    <Expansion>
    <s>Your custom workflow</s>
    </Expansion>
    </Field>

  • Architectural question

    Little architectural question: why is all the stuff that is needed to render a page put into the constructor of a backing bean? Why is there no beforeRender method, analogous to the afterRenderResponse method? That method can then be called if and only if a page has to be rendered. It seems to me that an awful lot of resources are waisted this way.
    Reason I bring up this question is that I have to do a query in the constructor in a page backing bean. Every time the backing bean is created the query is executed, including when the page will not be rendered in the browser...

    Little architectural question: why is all the stuff
    that is needed to render a page put into the
    constructor of a backing bean? Why is there no
    beforeRender method, analogous to the
    afterRenderResponse method? That method
    can then be called if and only if a page has to be
    rendered. It seems to me that an awful lot of
    resources are waisted this way.There actually is such a method ... if you look at the FacesBean base class, there is a beforeRenderResponse() method that is called before the corresponding page is actually rendered.
    >
    Reason I bring up this question is that I have to do
    a query in the constructor in a page backing bean.
    Every time the backing bean is created the query is
    executed, including when the page will not be
    rendered in the browser...This is definitely a valid concern. In Creator releases prior to Update 6 of the Reef release, however, there were use cases when the beforeRenderResponse method would not actually get called (the most important one being when you navigated to a new page, which is a VERY common use case :-).
    If you are using Update 6 or later, as a side effect of other bug fixes that were included, the beforeRenderResponse method is reliably called every time, so you can put your pre-rendering logic in this method instead of in the constructor. However, there is still a wrinkle to be aware of -- if you navigate from one page to another, the beforeRenderResponse of both the "from" and "to" pages will be executed. You will need to add some conditional logic to ensure that you only perform your setup work if this is the page that is actually going to be rendered (hint: call FacesContext.getCurrentInstance().getViewRoot().getViewId() to get the context relative path to the page that will actually be displayed).
    One might argue, of course, that this is the sort of detail that an application should not need to worry about, and one would be absolutely correct. This usability issue will be dealt with in an upcoming Creator release.
    Craig McClanahan

  • Architecture for using MDB with a server cluster

              Hi,
              I would like to get some advice on the architecture that is the most desirable
              for a scenario that I have here.
              I have 3 machines, each running a managed server belonging to the same cluster.
              My admin server runs on a 4th machine. I have deployed my MDB on the cluster and
              I'm trying to find a way to configure the 3 + 1 machines to give the best end-to-end
              time for processing the JMS messages.
              To investigate this, I'm running some simple benchmark tests with a client application
              that sends JMS messages to the system. The client repeatedly sends messages to
              the MDB's queue and the MDB puts processed messages to another queue that the
              client is listening to.
              Now, my question is: where should I set the target for my JMS server (and hence
              my queues) and the connection factories? I can think of a few possiblities:
              1. Connection factories target: cluster; JMS server target: one of the servers
              in the cluster
              -> Potential drawback - The server with the JMS server will be handling and redistributing
              the JMS messages to other servers in the cluster. This means that a portion of
              its processing power is used to do this instead of actually having the MDB process
              the JMS message. (Please correct me if i'm wrong)
              2. Connection factories target: cluster; JMS server target: have one JMS server
              for each server in the cluster and make use of distributed destinations
              -> Potential drawback - My client establishes connection with the MDB's queue
              only once before it sends its messages to it. Probably as a result of this and
              the way WebLogic clusters load-balance themselves, all the messages end up being
              routed to the same server. This option appears to be out since 2 of the 3 servers
              are not utilized at all.
              3. Connection factories target: admin server; JMS server target: admin server
              -> Potential drawback - The MDB has to maintain a queue connection with a server
              that is not part of the cluster. (Again, please correct me if I'm wrong.) I'm
              not sure if this introduces extra time taken for the MDB to receive its messages
              and for it to send the processed messages to the queue.
              I'd appreciate it if someone could advice me on the most desirable architecture
              to use here. From my understanding of the problem, option 3 seems to be the answer,
              but I may be wrong. Perhaps there is no significant difference in terms of performance
              that 3 can give, compared to 1 and 2.
              One last question. I'd like to understand, in option 1, if the admin server plays
              any part in load-balancing the cluster. Are the JMS messages received on the cluster's
              JMS queue forwarded to the admin server before they are rerouted to the server
              that is supposed to process it?
              Cheers,
              C.Y.
              

    3. Connection factories target: admin server; JMS server target: admin          server
              > -> Potential drawback - The MDB has to maintain a queue connection with a
              server
              > that is not part of the cluster. (Again, please correct me if I'm wrong.)
              I'm
              > not sure if this introduces extra time taken for the MDB to receive its
              messages
              > and for it to send the processed messages to the queue.
              Admin server is not supposed to participate in the cluster. I wouldn't
              deploy anything on the admin server.
              I think my personal preferene would be connection factories to the cluster
              and use distributed destinations.
              Regards...
              

Maybe you are looking for

  • Swf file opens in IE but not in firefox

    I have windows xp and flash player9. I created a swf file and published it for flash player 9 and ActionScript3 and embedded it into a web page.  It opens nicely in IE8 but when I try to open it in firefox 3.6, I get the message "Content of this page

  • Why Can't I Delete PDF's in iBooks 3.0.1?

    I want to delete some PDFs on my new iPod Touch 5, but can't seem to. In iBooks, on my device, I select "Edit", then touch each of the PDFs I want to delete. There is then a checkmark on the icon of the PDFs and I select "Delete". A message pops up a

  • Problem while passing parameters for dashboard prompts in URL

    Hi, We have created a dashboard on OBI which has some dashboard prompts. We have a requirement that we shall open the dashboard from an external application. We are doing this by invoking an URL. We want the dashboard to turn with prompts already bei

  • Subkey HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\fdemd not exist

    During installation of PI 7.0 gives message The subkey 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\fdemd' does not exist on the 'localhost' host.

  • I just downloaded the trial for Lightroom and Photoshop

    And everytime I try to start it up it will not let me and a error page pops up saying this, "Operation could not be completed. (com.apple.installer.pagecontroller error -1.) Couldn't open "Adobe Photoshop Lightroom 4.pkg"."