Override lifecycle event-handler in 11g

Hello,
I am trying to override lifecycle event-handling in 11g environment with the standard ADFPhaseListener.
In faces-config.xml I registered:
<lifecycle>
<phase-listener>oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener</phase-listener>
</lifecycle>
I have a backing-bean that extends oracle.adf.controller.v2.lifecycle.PageController
and override some methods like
@Override
public void prepareModel(LifecycleContext lifecycleContext) {
int x = 1;     // Dummy Statement
super.prepareModel(lifecycleContext);
@Override
public void prepareRender(LifecycleContext lifecycleContext) {
int x = 1;     // Dummy Statement
super.prepareRender(lifecycleContext);
@Override
public void processComponentEvents(LifecycleContext lifecycleContext) {
int x = 1;     // Dummy Statement
super.processComponentEvents(lifecycleContext);
@Override
public void processUpdateModel(LifecycleContext lifecycleContext) {
int x = 1;     // Dummy Statement
super.processUpdateModel(lifecycleContext);
If I set breakpoints in all 4 methods however they are never matched, not when entering the page nor during roundtrips.
Is there anything else I have to do to make it work. I couldn't find a detailed example for 11g.
Bruno

Hello,
and thanks for your help.
Meanwhile I created a Custom PagePhaseListener with PhaseListener Interface and registered it on the JSPX <f:phaseListener binding="..."/>
This matches my requirements even better since I need a listener for only one JSPX.
Since this is a JSF (not ADF) Interface I only get the Standard Lifecycle-Phases, which are fewer than in Frank's example, but they are sufficient for my purposes.
Or do you see any other major drawbacks.
Bruno

Similar Messages

  • Unregister Event Handler OIM 11g

    Hi
    I have created a event handler and registered the same within OIM 11g. it gets executed as expected after create user (post process). next i changed some of the code within my custom event handler. and registered the plugin after i unregistered the old one. unfortunately i still see the old output in my logs
    i have purged the metadata chache, i have bounced the OIM but no luck..
    Are there any steps / checks i need to follow after i unregister the event handler.. and also plz confirm whether we need to follow all the steps of registration of event handler every time we make changes to the event handler class. uhhh.. its really time consuming when
    thanks
    shiv

    Hi,
    Please make sure you are shipping updated JAR files in plugin.zip and re-register.
    Follow below steps to re-register plugin,
    1.     Unregister plugin using below command
    ant -f pluginregistration.xml unregister
    2.     Prepare plugin.zip with updated JAR file.
    3.     register plugin using below command
    ant -f pluginregistration.xml register
    You do not need to restart OIM server after re-register and need not to import eventhandler.xml unless you change version of plugin.
    Also you can verify registered plugin details in plugin table with following query (Run on OIM DB),
    select * from plugins;
    Thanks,
    Pradeep.

  • Debuging Event Handler OIM 11g

    Hi experts
    I have built the event handler and its able to set email of the end user as [email protected] after post process. Fortunatly i could do this at first shot after following the link on the oracle meta link.
    But i could not debug the eventhandler class file for any additional changes. though i have added the SOP statments i cud not see anythin in the OIM Diagnostic logs.
    can any one help me where i can find the trace out put of the SOP's i've set in the event handler.. is it in the WLS logs or do i need to set the OIM log level to finest. im lil confused
    this is the first time im dealing with oim event handlers.

    Hi ,
    By default SOP statments prints on OIM logs.
    You can generate Custom Log file in OIM 11g for event handler.
    1.Open logging.xml from <OIM Domain>/config/fmwconfig/servers/<OIM Server>
    2.In the <log_handlers> tag add entry for custom handler
    3.Add entry for the custom logger under <loggers> tag
    4.Restart the OIM server
    For more details, please see link http://docs.oracle.com/cd/E21764_01/doc.1111/e14308/log.htm#CEGEAGIB .
    Thanks,
    Pradeep
    Edited by: Pradeep Khopade on Jan 30, 2012 10:23 PM
    Edited by: Pradeep Khopade on Jan 30, 2012 10:24 PM

  • Override event handler for document events in LiveCycle

    I would like to have an email notification when a user opens a policy-protected DRM pdf. Is there a way to override the event handler for Document Open events?
    Or perhaps there is a way to access the event database- where can I find this information?

    Thank you so much for your reply. I have created an external authorization and am following the steps outlined here: http://help.adobe.com/en_US/livecycle/9.0/programLC/help/index.htm?content=001479.html
    I have deployed my jar and restarted JBoss. However, now when I try to create a new policy using my external authorization, I do not see an option to add it on the create new policy page. I see only sections for Users and Groups, General Settings, Advanced Settings, and Unchangeable Advanced Settings. Could you please tell me how to add the external authorization?
    Also, in the component.xml file, I followed the sample and kept this line: <component-id>com.adobe.livecycle.samples.externalauthorization</component-id>
    Should that be changed? If so, to what?
    Thanks.

  • Method to query DB in OIM Event handler

    Can anyone please give me info about how to connect to DB for querying the DB to get user attributes for customization in Event Handler (OIM 11g R2 PS1) ?
    Is there any utility available to get DB connection object without exposing any DB details like SID,IP,JDBC Driver details ?
    For ex: queery is like "Select USR_LOGIN from USR by USR_LOGIN DESC;"

    Try Platform.getOperationalDS()

  • Help needed in implementing validation event handler in OIM 11g

    Hello experts,
    I am trying to set username policy by implementing a validation event handler in OIM 11.1.1.5.
    Following are the steps followed
    1. Import metadata
    Created a file called Eventhandler.xml as below and imported using weblogicImportmetadata.sh
    <?xml version='1.0' encoding='UTF-8'?>
    <eventhandlers xmlns="http://www.oracle.com/schema/oim/platform/kernel" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.oracle.com/schema/oim/platform/kernel orchestration-handlers.xsd">
    <validation-handler class="test.iam.eventhandlers.CustomValidationEventHandler" entity-type="User" operation="CREATE" name="CustomValidationEventHandler" order="1000" sync="TRUE"/>
    </eventhandlers>
    2. Register plugin
    plugin.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <oimplugins xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <plugins pluginpoint="oracle.iam.platform.kernel.spi.ValidationHandler">
    <plugin pluginclass="test.iam.eventhandlers.CustomValidationEventHandler" version="1.0" name="CustomValidationEventHandler" />
    </plugins>
    </oimplugins>
    Just givng sys out in the below code to check whther it is getting triggerred during user create.
    package test.iam.eventhandlers;
    import java.util.HashMap;
    import oracle.iam.platform.Platform;
    import oracle.iam.platform.context.ContextAware;
    import oracle.iam.platform.kernel.ValidationException;
    import oracle.iam.platform.kernel.ValidationFailedException;
    import oracle.iam.platform.kernel.spi.ValidationHandler;
    import oracle.iam.platform.kernel.vo.BulkEventResult;
    import oracle.iam.platform.kernel.vo.BulkOrchestration;
    import oracle.iam.platform.kernel.vo.Orchestration;
    public class CustomValidationEventHandler implements ValidationHandler {
         @Override
         public void initialize(HashMap<String, String> arg0) {
         // TODO initialization
              System.out.println("init validate event handler");
         @Override
         public void validate(long processId, long eventId, Orchestration orchestration)
         throws ValidationException, ValidationFailedException {
              System.out.println("Beginning of validation");
              System.out.println("End of validation");
         @Override
         public void validate(long processId, long eventId, BulkOrchestration arg2)
         throws ValidationException, ValidationFailedException {
         // TODO - N/A
              System.out.println("Bulk Orchestration not yet implemented");     
    Now when i create a user it is not allowing and i am getting system error in the front end and in the logs i could see something below
    <May 28, 2012 3:03:29 PM CEST> <Error> <oracle.iam.identity.usermgmt.impl> <IAM-3050029> <The user cannot be created due to validation errors.
    oracle.iam.platform.kernel.ValidationFailedException: Event handler CustomValidationEventHandler implemented using class/plug-test.iam.eventhandlers.CustomValidationEventHandler could not be loaded.
    at oracle.iam.platform.kernel.impl.OrchProcessData.runValidationEvents(OrchProcessData.java:177)
    at oracle.iam.platform.kernel.impl.OrchestrationEngineImpl.validate(OrchestrationEngineImpl.java:644)
    at oracle.iam.platform.kernel.impl.OrchestrationEngineImpl.process(OrchestrationEngineImpl.java:497)
    at oracle.iam.platform.kernel.impl.OrchestrationEngineImpl.orchestrate(OrchestrationEngineImpl.java:444)
    at oracle.iam.platform.kernel.impl.OrchestrationEngineImpl.orchestrate(OrchestrationEngineImpl.java:378)
    at oracle.iam.identity.usermgmt.impl.UserManagerImpl.create(UserManagerImpl.java:656)
    at oracle.iam.identity.usermgmt.api.UserManagerEJB.createx(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
    I have implemented preprocess and postprocess event handler before with similar kind of plugin registration, metadata import and everything worked fine. Not sure what is the problem here with validation event handler.
    Thanks
    DK

    Instead of registering the plug-in can u try placing it in the plugins folder under Oracle_IDM1/server folder.
    at times restart is required. esp when the server is running in production mode.
    Regards
    user12841694

  • Custom Pre Process Event Handler in OIM 11g for middle initials

    Hi,
    I am trying to congiure a Custom Pre Process Event Handler for generating middle name in OIM 11g and I am following the steps as given in metalink ID: *1262803.1*
    Even after successfully performing all the steps I am not able to get the middle initials in Admin Console when I create a new user.
    1) Directory structure for the application that I have created through JDeveloper.
    CustomApplication/
    |-- CustomApplication.jws
    `-- CustomProject
    |-- CustomProject.jpr
    |-- classes
    | `-- com
    | `-- example
    | `-- custompph
    | `-- CustomPreProcessEventHandler.class
    `-- src
    `-- com
    `-- example
    `-- custompph
    `-- CustomPreProcessEventHandler.java
    2) Directory structure for Plugins directory
    My Plugin.xml :
    <?xml version="1.0" encoding="UTF-8" ?>
    <oimplugins>
    <plugins pluginpoint="oracle.iam.platform.kernel.spi.EventHandler">
    <plugin pluginclass="com.example.custompph.CustomPreProcessEventHandler"
    version="1.0" name="CustomPreProcessEventHandler" />
    </plugins>
    </oimplugins>
    plugin/
    |-- lib
    | `-- com
    | `-- example
    | `-- custompph
    | `-- CustomPreProcessEventHandler.class
    |-- middlename.zip
    `-- plugin.xml
    Copied the middlename.zip in the plugin folder in OIM_HOME and registered it successfully.
    3) Created a EventHandlers file and imported it successfully using importmetadata.
    My EventHandlers.xml:
    <?xml version='1.0' encoding='utf-8'?>
    <eventhandlers>
    <!-- Custom preprocess event handlers -->
    <action-handler
    class="com.example.custompph.CustomPreProcessEventHandler"
    entity-type="User"
    operation="CREATE"
    name="CustomPreProcessEventHandler"
    stage="preprocess"
    order="10"
    sync="TRUE"/>
    </eventhandlers>
    I checked the logs as well but could not find something which can help me to proceed.
    Also please advise is their any mapping that I need to do in *"Design Console"*
    Please advise !!!!!
    Thanks

    My lib file contains the package as mentioned in the metalink.
    Heirarchy in Plugin folder :
    1) plugin.xml
    2) Lib ( lib contains 3 folders : com/example/custompph; And inside custompph is my CustomPreProcessEventHandler.class file)
    You mean to say i should not copy the entire package in lib but only the jar file of the CustomPreProceessEventHandler.class* file.
    If i put only a .jar file in lib i get the following error.
    "Error occured during the use of plugin registering utility. The plugin zip does not contain the definition of plugin class com.example.custompph.CustomPreProcessEventHandler"
    Thanks
    Edited by: 870050 on Jul 4, 2011 4:30 AM

  • OIM 11g - ldap sync - Post Process event handler 'CREATE'  faillling

    Hi Gurus,
    We have ldap sync set up between OIM 11.1.1.5 and ODSEE 11g,
    Post process event handler on user creation with is setting a attribute with random 16 digit character, This event handler is getting triggered and setting the attribute in OIM but in logs i can see "Modification failed because user 45118 is not synchronized to the LDAP directory." error and it is not updated in ODSEE.
    This behaviour is only for trusted recon not for the User created through UI.
    Not sure what exactly is happening..
    Is it expected behavior??
    Gurus help me out on this.

    IF it fail because event handler unable to produce random number then verify below
    is eventhandler code being executed in trusted recon verify in log.
    There are two method execute and bulk execute in eventhandler. execute is being called from UI and bulk execute is being called for trusted recon.
    either put code in bulk execute or update batch recon size something like that system property to 1. so, it will function as UI. Default value of batch is 500
    --nayan                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               

  • OIM 11g R2 Post Event Handler not trigerred

    Hi,
    I have developed the event handler that request resources on user load into OIM (its a GTC load). I can see that:
    1. event handler is registered in "PLUGINS" table,
    2. appearing in em
    3. see the following under /dms/spy
    PostEventRequestResourceCreate company.com oim_server1:14000 active, threads 0 oim_server1
    avg, msecs 1.67
    completed, ops 3
    maxActive, threads 1
    maxTime, msecs 3
    minTime, msecs 1
    time, msecs 5
    As per the 11g R2 doc, I have included eventhandlers.xml as part of META-INF folder of my pluign zip -I did not import it into MDS as it was not mentioned in the doc (as it was mentioned in the case of 11g R1).
    I have updated the lib of the plugin zip with the custom class jar.
    I have few SOPs in my Eventhandler which are not getting printed and hence events are not triggered.
    Is there anything that I am missing here?
    Thanks

    HashMap eventDataHashMap = bulkOrchestration.getInterEventData();
    Identity[] currentUserStates = (Identity[]) eventDataHashMap.get("CURRENT_USER");
    You can loop through the same way you are through the bulkParameters and pull the database from there.
    -Kevin

  • OIM 11g: Event Handler "Data Object"

    Is there any way in the OIM 11g Users event handler model (pre-insert) to get a "data object" type structure of the column names and values which will be inserted into the database (i.e USR_FIRST_NAME = "John"). This would be similar to what the legacy 9.1x event handler model provided via the getDataObject() method.
    I know how to get the data from the orchestration parameters, but for our requirements we need the data to be keyed by database column name ("USR_FIRST_NAME") and not field name as in the orchestration params ("First Name").
    OIM must do this conversion at some point (field name -> database column name). Can we somehow leverage this same function?
    Thanks.

    You can accomplish through if statements in your event handler to check for the attributes that determine the logic. For example, if your user's last name changes, you can check the orchestration.getParameters() to see if it contains a key for "UserManagerConstants.AttributeName.LAST_NAME.getId()" and if it does, then perform your logic to update the user.
    You could also come up with a lookup that can be referenced for these and have your own custom java code that outputs information based on the values in the lookup. Just think creatively and anything is possible.
    Or you can get a connection to the database, and have a constants file that translates the metadata names back to database fields and continue to use your existing code.
    Lots of options.
    -Kevin

  • OIM 11g: Event Handler Packaging/Deployment

    Need some advice/guidance on best practices for packaging/deploying Event Handlers in OIM 11g.
    In our OIM 9.1 environment, we organized all of our custom code by "functional area" so we have JAR's named oim-common.jar, oim-ad.jar, oim-oid.jar, etc. Within each one of these JAR's we have all adapter code, scheduled tasks, and 10g event handlers related to that area. This approach was done to promote code reuse and make unit testing easier.
    From what I've read on 11g Event Handlers, it sounds like each event handler needs to be packaged as a plugin along with it's own JAR so that we'd have one JAR per event handler. So, if we have 100 event handlers, we'd need 100 JAR's? Is this required or can our plugin ZIP files just contain the XML definitions as long as the referenced classes are on the classpath?

    Gyanprakash Pandey wrote:
    You should have a separate plugin package for each event handler. Practically we should have number of event-handlers as less as possible. If there are more event-handlers we must modify the design as event handler cause performance issues.
    Regards,
    GPHi Gyanprakash,
    I'm going to use event handlers in my project, so I'm interested very much in hearing about the performance issues.
    Besides, I do not see why I shall package every handler separately. Is this intended behavior or because of some bugs in OIM?
    Regards,
    Vladimir

  • Can we apply an event handler only for a custom request in oim 11G?

    Hi,
    We would like to create a custom request for user creation, modification etc.
    I saw that event handlers allow to add business rules by running java code during differents steps of processes.
    I would like to know if we can trigger an event handler on a specific request and not on all user CREATION, UPDATE etc.
    For example, we would like to have differents creation requests and a differents event handler on each request.
    And can we add "logical" input on request form and read them in event handler?
    For example, 3 inputs: day, month and year on the form which fill one user attribute "end contract date".
    Regards,
    Pierre

    thank you Akshat,
    I saw part 19 in the developper's guide. If I understand, I can change the default CreateUserRequestData to define ALL form components that will be used in my differents user creation request templates.
    I can use prepopulation adapter to pre populate field with java code.
    I can use the plug-in point oracle.iam.request.plugins.StatusChangeEvent to run custom java code.
    But they don't mention where you can run java code for a specific creation template named "MyUserCreationTemplate1" and other java code for an other specific creation tempalate" MyUserCreationTemplate2".
    That makes me think we must retrieve the template name in java code and execute the appropriate business logic.
    if request name==MyUserCreationTemplate1
    Edited by: user1214565 on 31 mai 2011 07:42

  • PostProcess event handler for trusted recon -11G Release2

    Hi all,
    I am disabling a user in post process eventhandler bulkExecution method. When the event handler is triggered does the user is already created at OIM? Do I modify the already created user? Or all changes done to any user during the orchestration process are commited at finalization... Can anyone tell me how things goes at the db side?
    Thanks in advance
    BR
    Aliye

    Post process event handler is fired after the user is created in database. You can verify by retrieving the usr_key attribute of user profile which is generated in database. So if you are disabling a user using post-process event handler, it means user is already created in database. As far as orchestration framework is concerned user is created during orchestration period and all event handlers and access policies are evaluated after that.
    regards,
    GP

  • Event Handler is not being triggered- 11G Release2

    Hi all,
    I developed a postprocess event handler which I am expecting to be triggered when my custom task for trusted reconciliation run. I have deployed my event handler using plugin registration utility. I put a static block in my class to see if my class iz being initialized. I see that iti is initialized but event handler is never triggered (execute method is never called). Why it is not triggered? Any help is strongly appreciated... Below is my configuration for the event handler..
    <?xml version='1.0' encoding='utf-8'?>
    <eventhandlers xmlns="http://www.oracle.com/schema/oim/platform/kernel"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.oracle.com/schema/oim/platform/kernel/orchestration-handlers.xsd">
    <action-handler class="com.tcmb.iam.plugin.eventhandler.PostProcessEventHandler"
    entity-type="User"
    operation="ANY"
    name="PostProcessEventHandler"
    stage="postprocess" order="1002"
    sync="TRUE"/>
    </eventhandlers>
    <?xml version="1.0" encoding="UTF-8"?>
    <oimplugins xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <plugins pluginpoint="oracle.iam.platform.kernel.spi.EventHandler">
    <plugin pluginclass=
    "com.tcmb.iam.plugin.eventhandler.PostProcessEventHandler"
    version="1.0"
    name="PostProcessEventHandler">
    </plugin>
    </plugins>
    </oimplugins>
    Tahnaks in advance,
    BR
    ALİYE

    Hi Nayan,
    I have cheked the plugins table and my plugin is in there.Thenchecked mds_paths table I have four records there (I have deployed and undeployed few times) wich are as follow:
    path element name
    http://www.oracle.com/schema/oim/platform/kernel     action-handler
    http://www.oracle.com/schema/oim/platform/kernel     action-handler
    http://xmlns.oracle.com/schema/oim/platform/kernel eventhandlers
    http://www.oracle.com/schema/oim/platform/kernel     eventhandlers
    Which schema is corrent? Is there something wrong with these records that causes my handler to do not trigger ?
    Thanks a lot
    BR
    Aliye

  • OIM 11g: Access Denied searching usr_emp_no in post process event handler

    I am logging in as xelsysadm and creating a new user. I have populated a UDF called Manager Employee Number with a value of 12345 and I have a corresponding user with the Employee Number populated with that same value.
    When I create the user, my code searches for a corresponding user in OIM with that employee number. The problem is that i am getting an access denied error searching use_emp_no. Ironically, in a different post process event handler, I have access to decrypting the user's password.
    I tried searching by Employee Number rather than use_emp_no (which is what is returned with AttributeName.EMPLOYEE_NUMBER.getId()) but that did not find any users. It did seem to attempt the search though.
    Here is the code and the error:
    //get the manager object and retrieve the user login and user key of the manager
    mgrRetAttrs.add("USER_LOGIN");
    mgrRetAttrs.add("USER_KEY");
    List<User> mgrList = searchUsr(mgrEmpNo, mgrRetAttrs);
    logger.finest("Retrieved " + mgrList.size() + " managers with that employee number.");
    private List<User> searchUsr(String mgrEmpNo, Set<String> mgrRetAttrs) throws AccessDeniedException, UserSearchException{
    logger.finest("************Entering BBTMgrIDPostProcEventHandler#searchUser()***********");
    logger.finest("This is the manager emp no we are searching: " + mgrEmpNo);
    SearchCriteria srchCriteria =
    new SearchCriteria(AttributeName.EMPLOYEE_NUMBER.getId(), mgrEmpNo, SearchCriteria.Operator.EQUAL);
    logger.finest("This is the search criteria: " + srchCriteria.toString());
    logger.finest("Exiting BBTMgrIDPostProcEventHandler#searchUser()");
    return getUserManager().search(srchCriteria, mgrRetAttrs, null);
    private UserManager getUserManager() {
    logger.finest("Enter BBTMgrIDPostProcEventHandler#getUserManager()");
    if (this.userMgr == null) {
    this.userMgr = Platform.getService(UserManager.class);
    logger.finest("Exit BBTMgrIDPostProcEventHandler#getUserManager()");
    return this.userMgr;
    Entering BBTMgrIDPostProcEventHandler#execute()
    oracle.iam.platform.authz.exception.AccessDeniedException: You do not have permission to search the following user attributes: usr_emp_no.
    at oracle.iam.identity.usermgmt.impl.UserManagerImpl.search(UserManagerImpl.java:1699)
    at oracle.iam.identity.usermgmt.api.UserManagerEJB.searchx(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.jee.spi.MethodInvocationVisitorImpl.visit(MethodInvocationVisitorImpl.java:37)
    at weblogic.ejb.container.injection.EnvironmentInterceptorCallbackImpl.callback(EnvironmentInterceptorCallbackImpl.java:54)
    at com.bea.core.repackaged.springframework.jee.spi.EnvironmentInterceptor.invoke(EnvironmentInterceptor.java:50)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
    at $Proxy328.searchx(Unknown Source)
    at oracle.iam.identity.usermgmt.api.UserManager_nimav7_UserManagerRemoteImpl.__WL_invoke(Unknown Source)
    at weblogic.ejb.container.internal.SessionRemoteMethodInvoker.invoke(SessionRemoteMethodInvoker.java:40)
    at oracle.iam.identity.usermgmt.api.UserManager_nimav7_UserManagerRemoteImpl.searchx(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.invoke(RemoteBusinessIntfProxy.java:85)
    at $Proxy196.searchx(Unknown Source)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:198)
    at $Proxy318.searchx(Unknown Source)
    at oracle.iam.identity.usermgmt.api.UserManagerDelegate.search(Unknown Source)
    at com.oracle.iam.bbt.eventhandler.BBTFindMgrID.searchUsr(BBTFindMgrID.java:244)
    at com.oracle.iam.bbt.eventhandler.BBTFindMgrID.executeEvent(BBTFindMgrID.java:189)
    at com.oracle.iam.bbt.eventhandler.BBTFindMgrID.execute(BBTFindMgrID.java:114)
    at oracle.iam.platform.kernel.impl.OrchProcessData.runPostProcessEvents(OrchProcessData.java:1168)
    at oracle.iam.platform.kernel.impl.OrchProcessData.runEvents(OrchProcessData.java:710)
    at oracle.iam.platform.kernel.impl.OrchProcessData.executeEvents(OrchProcessData.java:227)
    at oracle.iam.platform.kernel.impl.OrchestrationEngineImpl.resumeProcess(OrchestrationEngineImpl.java:674)
    at oracle.iam.platform.kernel.impl.OrchestrationEngineImpl.resumeProcess(OrchestrationEngineImpl.java:705)
    at oracle.iam.platform.kernel.impl.OrhestrationAsyncTask.execute(OrhestrationAsyncTask.java:108)
    at oracle.iam.platform.async.impl.TaskExecutor.executeUnmanagedTask(TaskExecutor.java:100)
    at oracle.iam.platform.async.impl.TaskExecutor.execute(TaskExecutor.java:70)
    at oracle.iam.platform.async.messaging.MessageReceiver.onMessage(MessageReceiver.java:68)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.bea.core.repackaged.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:310)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
    at com.bea.core.repackaged.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
    at com.bea.core.repackaged.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
    at com.bea.core.repackaged.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at com.bea.core.repackaged.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
    at $Proxy331.onMessage(Unknown Source)
    at weblogic.ejb.container.internal.MDListener.execute(MDListener.java:574)
    at weblogic.ejb.container.internal.MDListener.transactionalOnMessage(MDListener.java:477)
    at weblogic.ejb.container.internal.MDListener.onMessage(MDListener.java:379)
    at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:4659)
    at weblogic.jms.client.JMSSession.execute(JMSSession.java:4345)
    at weblogic.jms.client.JMSSession.executeMessage(JMSSession.java:3821)
    at weblogic.jms.client.JMSSession.access$000(JMSSession.java:115)
    at weblogic.jms.client.JMSSession$UseForRunnable.run(JMSSession.java:5170)
    at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    Caused by: oracle.iam.identity.exception.SearchAttributeAccessDeniedException: You do not have permission to search the following user attributes: usr_emp_no.
    at oracle.iam.identity.usermgmt.impl.UserManagerImpl.search(UserManagerImpl.java:1696)
    ... 76 more
    Thanks,
    Ruth

    This is what fixed the problem:
    Instead of the following:
    //get the manager object and retrieve the user login and user key of the manager
    mgrRetAttrs.add("USER_LOGIN");
    mgrRetAttrs.add("USER_KEY");
    I needed to do this instead:
    mgrRetAttrs.add(UserManagerConstants.AttributeName.USER_LOGIN.getId());
    mgrRetAttrs.add(UserManagerConstants.AttributeName.USER_KEY.getId());
    Then I changed the searchCriteria back to the following:
    SearchCriteria srchCriteria =
    new SearchCriteria("Employee Number", "12345", SearchCriteria.Operator.EQUAL);
    This did the trick.
    Ruth

Maybe you are looking for