Creating access policy using OIM 11g APIs
Is there a way to create an access policy using API? I see that there is AccessPolicyService but it only supports evalutePoliciesForUser. I need a way to add and modify policies.
I'm using OIM 11.1.1.5
Edited by: DJ on May 21, 2012 11:53 AM
FYI, I hope the following links might be helpful, if you did not come across them before:
OIM API for Create Access Policy:
http://otndnld.oracle.co.jp/document/products/id_mgmt/idm_904/doc_cd/javadocs/operations/Thor/API/Operations/tcAccessPolicyOperationsIntf.html
Example Code for OIM API Creation of Access Policy
http://learnidm.blogspot.co.uk/2011_08_01_archive.html
Thanks,
Krish.
Similar Messages
-
How to create Authorization policy using OIM 11g API
Hi,
Could you please let me know how to create Authorization policy using OIM 11g API.
ThanksConstructing A Policy Programmatically
http://docs.oracle.com/cd/E27559_01/dev.1112/e27154/cons_policy_prog.htm#CHDHACBF
api ref for PolicyStore
http://docs.oracle.com/cd/E21764_01/apirefs.1111/e22649/oracle/security/jps/service/policystore/PolicyStore.html#createApplicationPolicy_java_lang_String_
something like below code to start with
try {
JpsContextFactory ctxFact;
ctxFact = JpsContextFactory.getContextFactory();
JpsContext ctx;
ctx = ctxFact.getContext();
PolicyStore ps = ctx.getServiceInstance(PolicyStore.class);
if (ps == null) {
// if no policy store instance configured in jps-config.xml
System.out.println("no policy store instance configured");
return;
ApplicationPolicy ap = ps.createApplicationPolicy("Trading", "Trading
Application","Trading Application.");
} catch (JpsException e) {
} -
Error while creating authorisation policy using OIM 11g API
Hi,
We have a requirement to create ‘Authorization Policies’ (assign Data Constraints, Permissions & Assignments) using OIM 11g API’s. I am using ‘oracle.iam.authzpolicydefn.api.PolicyDefinitionService & oracle.iam.authzpolicydefn.vo.AuthzPolicy’. But when I am trying to attach Entity/Feature (User Management) to authorisation policy, it is throwing exception. Below is the code snippet which I am trying to implement.
Line1: PolicyDefinitionService policyService = oimClient.getService(PolicyDefinitionService.class);
Line2: AuthzPolicy authPolicy = new AuthzPolicy();
Line3: authPolicy.setName("Test Authz Policy");
Line4: authPolicy.setDisplayName("Test Authz Policy Dsp Name");
Line5: authPolicy.setDescription("Test Authz Policy Description");
Line6: Feature feature = oimClient.getService(Feature.class);
Line7: Action featureAction = feature.getAction(FeatureManagerConstants.Features.USER_MGMT.getId());
Line8: List<Action> actions = new ArrayList<Action>();
Line9: actions.add(featureAction);
Line10: authPolicy.setActions(actions);
Line11: policyService.createPolicy(authPolicy);
Exception: oracle.iam.platform.utils.NoSuchServiceException: java.lang.ClassNotFoundException: oracle.iam.authzpolicydefn.api.FeatureDelegate
The above exception is throwing at Line6.
Let me know if anyone implemented.
- Kalyan MutyaIf you are using JDeveloper , can you able to get class after giving "." .If yes no than it is the problem with the jar file you are using .Check whether you can able to import oracle.iam.authzpolicydefn.api.Feature.
Thanks ,
Animesh anand -
Error in creating approval policy in OIM 11g
hi...
i am trying to create approval policy in OIM 11g. But after giving the details for first step, it gives the following error-
"Approval policy validation failed with oracle.iam.request.exception. ApprovalPolicyServiceException:An error occured while searching request model <policy name>"
Please let me know the coz of this error and the way to resolve it.If you are using JDeveloper , can you able to get class after giving "." .If yes no than it is the problem with the jar file you are using .Check whether you can able to import oracle.iam.authzpolicydefn.api.Feature.
Thanks ,
Animesh anand -
Create Access Policy with OIM API: can't fill child form
Hi!
I'm having a problem with creating OIM Access Policy with API. I'm doing the following:
1. Create a new access policy via AccessPolicyIntf
2. Add a resource object which will be provisioned to all users who are within policy scope
3. Get Resource Object (Parent) Form Definition via FormDefinitionIntf
4. Add data to parent form (AccessPolicyIntf setFormData(FormDefinitionKey))
5. Now I want to add data to the child form, for that purpose I need to know child form definition key, but I can' get one, because there's no method like 'getChildFormDefinitionKey' in FormDefinitionIntf interface.
Please, help me to get child form definition key, knowing parent form definition key and versionSee if this code helps:
public String addChildTableValue(long userKey, String group, String objectName, String fieldName tcDataProvider ioDatabase) {
log.debug("addChildTableValue() Parameter Variables passed are:" +
"userKey=[" + userKey + "]" +
"group=[" + group + "]" +
"fieldName=[" + fieldName + "]" +
"objectName=[" + objectName + "]");
try{
tcUserOperationsIntf userIntf = (tcUserOperationsIntf)tcUtilityFactory.getUtility(ioDatabase, "Thor.API.Operations.tcUserOperationsIntf");
tcFormInstanceOperationsIntf formIntf = (tcFormInstanceOperationsIntf)tcUtilityFactory.getUtility(ioDatabase, "Thor.API.Operations.tcFormInstanceOperationsIntf");
boolean roleExists = false;
//Result set of all Object for user
tcResultSet obResultSet = userIntf.getObjects(userKey);
if (obResultSet.isEmpty()){
log.error("User has no provisioned objects");
return "NO_OBJECTS_EXIST";
}else{
for (int ii=0; ii<obResultSet.getRowCount(); ii++){
obResultSet.goToRow(ii);
if ((obResultSet.getStringValue("Objects.Name").equals(objectName)) &&
(!(obResultSet.getStringValue("Objects.Object Status.Status").equals("Revoked")) &&
!(obResultSet.getStringValue("Objects.Object Status.Status").equals("Provisioning")))){
log.debug("Resource object found: " + objectName);
//Process Instance Key of the object
long plProcessInstanceKey = obResultSet.getLongValue("Process Instance.Key");
log.debug("Process instance key: " + plProcessInstanceKey);
//Process Key for the parent for
long plParentFormDefinitionKey = obResultSet.getLongValue("Process.Process Definition.Process Form Key");
log.debug("Parent form definition key: " + plParentFormDefinitionKey);
//Form version of the parent form
int pnParentFormVersion = formIntf.getProcessFormVersion(plProcessInstanceKey);
log.debug("Parent form version: " + pnParentFormVersion);
//Result set of Child Form information
tcResultSet childFormResultSet = formIntf.getChildFormDefinition(plParentFormDefinitionKey, pnParentFormVersion);
//Child form definition key
long plChildFormDefinitionKey = childFormResultSet.getLongValue("Structure Utility.Child Tables.Child Key");
String plChildTableName = childFormResultSet.getStringValue("Structure Utility.Table Name");
log.debug("Child form definition key: " + plChildFormDefinitionKey);
log.debug("Child table name: " + plChildTableName);
tcResultSet childFormData = formIntf.getProcessFormChildData(plChildFormDefinitionKey, plProcessInstanceKey);
if (!(childFormData.isEmpty())){
log.debug("Searching child table current values");
for (int iii=0; iii<childFormData.getRowCount();iii++){
childFormData.goToRow(iii);
String fieldValue = childFormData.getStringValue(fieldName);
log.debug("Child table entry: " + iii + " | value: " + fieldValue);
if (fieldValue.equals(group)){
roleExists = true;
log.debug("Value already exists in child table");
return "DUPLICATE_VALUE";
log.debug("Value not found in child table");
if (!roleExists){
Hashtable childFormHash = new Hashtable();
childFormHash.put(fieldName, group);
formIntf.addProcessFormChildData(plChildFormDefinitionKey, plProcessInstanceKey, childFormHash);
log.debug("Value successfully added to table");
return "VALUE_ADDED";
log.debug("Provisioned resource " + objectName + " object not found");
return "OBJECT_NOT_FOUND";
catch(Exception ex){
ex.printStackTrace();
return "ERROR"; -
Creating a Request via OIM 11g API
I'm trying to create a request in OIM using the API. I found this post ( OIM 11g - Setting Process Form Data through Request API ) which has the code to do it but I'm getting an error:
Here is what I have
OIMClient client = getOIMClient(url, username, password);
long resKey = 0L;
String str = null;
String resourceKey = null;
Map<String, String> searchMap = new HashMap<String, String>();
tcResultSet resultSet = null;
RequestData requestData = null;
Beneficiary beneficiary = null;
RequestBeneficiaryEntity entity = null;
List<Beneficiary> beneficiaryList = new ArrayList<Beneficiary>();
List<RequestBeneficiaryEntity> entityList = null;
List<RequestBeneficiaryEntityAttribute> entityAttrList = null;
String RESOURCE = "TESTRESOURCE_GTC";
tcITResourceInstanceOperationsIntf operations = client.getService(tcITResourceInstanceOperationsIntf.class);
Map<String, String> conditions = new HashMap<String, String>();
conditions.put("IT Resources.Name", "TESTRESOURCE_GTC");
resultSet = operations.findITResourceInstances(conditions);
resKey = resultSet.getLongValue("IT Resource.Key");
resourceKey = Long.toString(resKey);
RequestBeneficiaryEntityAttribute parantAttr = new RequestBeneficiaryEntityAttribute();
parantAttr.setType(TYPE.String);
parantAttr.setName("Title");
parantAttr.setValue("Mr.");
entityAttrList = new ArrayList<RequestBeneficiaryEntityAttribute>();
entityAttrList.add(parantAttr);
entity = new RequestBeneficiaryEntity();
entity.setEntityKey(resourceKey);
entity.setEntityType(RequestConstants.RESOURCE);
entity.setEntitySubType(RESOURCE);
entity.setEntityData(entityAttrList);
entityList = new ArrayList<RequestBeneficiaryEntity>();
entityList.add(entity);
System.out.println("*********** USR KEY" + usrKey);
beneficiary = new Beneficiary();
beneficiary.setBeneficiaryType(Beneficiary.USER_BENEFICIARY);
beneficiary.setBeneficiaryKey(usrKey);
beneficiary.setTargetEntities(entityList);
beneficiaryList.add(beneficiary);
requestData = new RequestData();
requestData.setRequestTemplateName("Self-Request Resource");
requestData.setJustification("Test");
requestData.setBeneficiaries(beneficiaryList);
UnauthenticatedRequestService reqsrvc = client.getService(UnauthenticatedRequestService.class);
str = reqsrvc.submitRequest(requestData);
System.out.println("Value from submitRequest : '" + (str != null ? str : null) + "'");I'm getting
<Feb 14, 2012 4:53:24 PM EST> <Error> <oracle.iam.request.impl> <IAM-2050128> <Invalid beneficiary key was specified for Self-Request. >
oracle.iam.request.exception.InvalidRequestDataException: IAM-2050128:Invalid beneficiary key was specified for Self-Request.
I can see that USER KEY is getting populated.
Edited by: DJ on Feb 14, 2012 4:59 PM
Edited by: DJ on Feb 14, 2012 5:00 PMWhile creating a request to provision iPlanet User one of the errors I was getting:
oracle.iam.request.exception.RequestServiceException: IAM-2050061:Type mismatch for the attribute Server. The type passed is String, but the corresponding type in the data set is Long.:Server:String:Long
So I replaced the value of the attribute Server to the IT Resource.Key which is 5. After making the changes, it goes through approvals with no problems, but when I approve all the work items, it errors out with an error:
Error occurred while provisioning resource with key 45 to user 5
User Key is 45 and Resource Key is 5. I'm not sure why it swapped it.
Here is the code I'm using:
public static void createRequest(String userLogin, String templateName, String resourceName, HashMap<String, Object> attrs, OIMClient client) {
try {
String usrKey = searchUserByLogin(userLogin, client).get(0).getId();
long resKey = 0L;
String str = null;
String resourceKey = null;
Map<String, String> searchMap = new HashMap<String, String>();
tcResultSet resultSet = null;
RequestData requestData = null;
Beneficiary beneficiary = null;
RequestBeneficiaryEntity entity = null;
List<Beneficiary> beneficiaryList = new ArrayList<Beneficiary>();
List<RequestBeneficiaryEntity> entityList = null;
List<RequestBeneficiaryEntityAttribute> entityAttrList = new ArrayList<RequestBeneficiaryEntityAttribute>();
tcITResourceInstanceOperationsIntf operations = client == null ? Platform.getService(tcITResourceInstanceOperationsIntf.class) : client.getService(tcITResourceInstanceOperationsIntf.class);
Map<String, String> conditions = new HashMap<String, String>();
conditions.put("IT Resources.Name", resourceName);
resultSet = operations.findITResourceInstances(conditions);
resKey = resultSet.getLongValue("IT Resource.Key");
resourceKey = Long.toString(resKey);
for (String attr : attrs.keySet()) {
RequestBeneficiaryEntityAttribute parantAttr = new RequestBeneficiaryEntityAttribute();
if (attrs.get(attr) instanceof String) {
parantAttr.setType(TYPE.String);
parantAttr.setName(attr);
parantAttr.setValue(String.valueOf(attrs.get(attr)));
entityAttrList.add(parantAttr);
} else if (attrs.get(attr) instanceof Long) {
parantAttr.setType(TYPE.Long);
parantAttr.setName(attr);
parantAttr.setValue(String.valueOf(attrs.get(attr)));
entityAttrList.add(parantAttr);
} else {
// do nothing
entity = new RequestBeneficiaryEntity();
entity.setEntityKey(resourceKey);
entity.setEntityType(RequestConstants.RESOURCE);
entity.setEntitySubType(resourceName);
entity.setEntityData(entityAttrList);
entityList = new ArrayList<RequestBeneficiaryEntity>();
entityList.add(entity);
beneficiary = new Beneficiary();
beneficiary.setBeneficiaryType(Beneficiary.USER_BENEFICIARY);
beneficiary.setBeneficiaryKey(usrKey);
beneficiary.setTargetEntities(entityList);
beneficiaryList.add(beneficiary);
requestData = new RequestData();
requestData.setRequestTemplateName(templateName);
requestData.setJustification("Test");
requestData.setBeneficiaries(beneficiaryList);
System.out.println("Resource Keys " + resKey + " " + resourceKey);
System.out.println("User Key " + usrKey);
RequestService reqsrvc = client == null ? Platform.getService(RequestService.class) : client.getService(RequestService.class);
str = reqsrvc.submitRequest(requestData);
System.out.println("Value from submitRequest : '" + (str != null ? str : null) + "'");
} catch (Throwable t) {
t.printStackTrace();
}Edited by: DJ on Feb 16, 2012 5:01 PM -
Approving OIM/SOA requests using OIM 11g APIs
I'm creating a SOA request using createRequest method in RequestService OIM API. I would like to approve/reject the work items using the API as well but I don't see any methods to approve/reject the tasks. Is this something I would have to use SOA's webservices to do it?
ThanksYou need to use BPEL worklist API for the same.
http://technology.amis.nl/blog/1496/invoking-bpel-worklist-api-from-remote-server-with-java
http://docs.oracle.com/cd/E12839_01/integration.1111/e10224/bp_worklistcust.htm
-Bikash -
How to Apply a Newly Created Access Policy on Existing Users in OIM?
When the rule is getting failed the user is getting removed from the group but resource is not getting revoked. This is happening only for the old uses..for the users which i created now it working fine..i mean its resource is getting revoked.
(Retrofit access policy" is checked on the Access Policyand Revoke if not longer applied is checked.)
For the old users i see the POl_Key is null, for new users i see a value '10'. So i updated the pol_key for old users same as it got generated for new users '10'.
i even updated the form version too but still revoke doesn't work.
I cant go for the below approach..
In order to apply a newly created Access Policy on existing users, one has to make sure that:
1) "Retrofit access policy" is checked on the Access Policy.
2) Then run the "Set User Provisioned Date" Schedule task to apply the Access Policy on the existing users in OIM.
Note: After 9.1.0.1 BP03 the access policy execution has been moved to a new scheduled task "Evaluate User Policies" as mentioned inDocument 839368.1 :How to Use Access Policies to Provision with Groups.
Is there any other approach i can try.. if you have any idea please reply me asap
Thanks..Thanks for the reply kevin..
We decided to try the Schedule task (Set User Provisioned Date).
But i see one problem here after seeing this post in metalik --> Can Access Policies Manage The Life-cycle Of Users Created via Reconciliation? [ID 1136540.1]
According to this post Access Policies framework does not manage users who are obtained either through trusted reconciliation or target reconciliation.
Is there any custom way to achieve this??
How does the access policy framework revoke resource work? (revoke if no longer applies)??
Edited by: IDMuser19 on Jun 21, 2011 11:43 PM -
How can I o create, modify or delete users using OIM 11g web services?
Hi,
I have a requirement to create, modify or delete users using OIM 11g web services.
The end users will be signing on to the online application, a user interface to request ids online. The user interface is the home grown application to request ids.
I want to integrate this user interface with OIM 11g. I generated the java classes using the out of the box wsdl file as mentioned in the Developer’s Guide for Oracle Identity Manager 11g. But I need to know how to create users using web server client from a given wsdl file? Is there a sample web service client program to create a user in OIM?
If you know of any document which I can follow or if you can give any details I really appreciate.
Thanks and Regards,
VirafHi Chong,
Were you able to figure out the approach? I am facing the same issue like this. I have created a web service where the input values are no. of days to extend user's end date and user's employee ID. Output will be true or false. But I am getting error while searching user in OIM DB. I think my web service is not to query OIM DB
Please let me know if you have worked on this senario.
Thanks,
Kalpana. -
Security Exception while using OIM client API with Webcenter
Hi,
We are using OIM 11g Client api for creating user from our WebCenter portal application. But we are getting security as well as no such service exception while calling login from the OIM client.
Exception::
oracle.iam.platform.utils.NoSuchServiceException: java.lang.reflect.InvocationTargetException
at oracle.iam.platform.OIMClient.getServiceDelegate(OIMClient.java:197)
at oracle.iam.platform.OIMClient.getService(OIMClient.java:174)
at oracle.iam.platform.OIMClient.loginSessionCreated(OIMClient.java:209)
at oracle.iam.platform.OIMClient.login(OIMClient.java:136)
at oracle.iam.platform.OIMClient.login(OIMClient.java:114)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at oracle.iam.platform.OIMClient.getServiceDelegate(OIMClient.java:193)
Caused by: java.lang.SecurityException: [Security:090398]Invalid Subject: principals=[weblogic, Administrators]
at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:234)
oracle.iam.platform.utils.NoSuchServiceException: java.lang.reflect.InvocationTargetException
Client Code::
System.setProperty("java.security.auth.login.config", "Path to authwl.conf");
System.setProperty("OIM.AppServerType", "weblogic");
env = new Hashtable();
env.put(OIMClient.JAVA_NAMING_FACTORY_INITIAL,"weblogic.jndi.WLInitialContextFactory");
env.put(OIMClient.JAVA_NAMING_PROVIDER_URL, "t3://host:14000/oim");
client = new OIMClient(env);
try {
client.login(OIMUserName, OIMPassword);
} catch (LoginException e) {
e.printStackTrace();
The exception is coming after executing the login code (not login exception).We logged into our application using weblogic user(even for any other user in OID,shared by OIM, is having same behaviour). The code is being executed from integrated webogic server and oim_server is running on a different server under a separate domain.
Please suggest.
ThanksThere are files needed in your project.
from the <OIMHOME>/config folder_
xl.policy
authwl.conf
log.properties
from the <OIMHOME>/ext folder_
commons-logging.jar
jakarta-oro-2.0.8.jar
javagroups-all.jar
jhall.jar
log4j-1.2.8.jar
mail.jar
oscache.jar
spring.jar
wlfullclient.jar
from the <OIMHOME>/lib folder_
iam-platform-auth-client.jar
iam-platform-context.jar
iam-platform-pluginframework.jar
iam-platform-utils.jar
oimclient.jar
XellerateClient.jar
xlAPI.jar
xlDataObjectBeans.jar
xlUtils.jar
xlVO.jar -
Is it possible to delete an Access Policy on OIM 11gR2?
Hello,
Is it possible to delete an Access Policy on OIM 11gR2?
I have created an Access Policy and associated it with a Role.
But now, due to changes, this Role should not trigger an Access Policy anymore.
I haven't found a way to disassociate the Access Policy from the Role neither a way to delete the unnecessary Access Policy.
Thanks,
Adriano.Hi,
As far as I know, deleting an access policy is not possible. One solution would be you can create a dummy role which you will never use and remove your existing role from the access policy and assign this dummy role to the policy and save it. That should stop the auto triggering.
Thanks,
$id -
How to pass the value from DB in Approval Policy Rule OIM 11g R2
Hi,
I need to get the value of rule condition in Approval policy from DB.
Please let me know how to achieve this. I am using OIM 11g R2.
ThanksHow to passing the textbox value within the jsp page
without using javascript or reload the page.No, jsp executes on the remoter server, the text box is on a client machine, you need to send information to the server over the network, http does this with a request, which will reload the page..................... -
Restricting administrator tab to user created with default role OIM 11g R2
Hi,
I have a query, if we create a user in OIM 11g R2 without any admin role and then login to Self Service screen (Identity) with the newly created user, we can see the Administration Tab is visible to the user.
Is this mean that by default user is having admin role assigned to him to do some of the admin activities.
Please let me know how to control this behavior and not to show the Administration tab to the user until and unless he is having some admin roles assigned to him.
Please help.You can hide Administration tab for normal users using EL's. By default users will get this tab when they login to identity console even though admin role is not assigned to them. But if you do any operation on any users, request will be raised accordingly.
Check this link to configure EL's http://docs.oracle.com/cd/E27559_01/dev.1112/e27150/uicust.htm#autoId18 -
Problem with creating customer account using TCA Java API
Hi,
I am trying to create customer account using TCA java API. i am getting exception saying PL/SQL numeric error: character to number conversion. but this error raises when calling API method
HzCustAccountV2Pub.createCustAccount.
can any body help me in solving this issue, any clue why this exception raises. i have tested even the code given in TCA API user guide. that code also gets same error.package client;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.sql.DriverManager;
import java.sql.SQLException;
import oracle.jdbc.driver.OracleConnection;
import oracle.jdbc.driver.OracleCallableStatement;
import oracle.jdbc.driver.OracleTypes;
import oracle.apps.ar.hz.v2api.HzCustAccountV2Pub;
import oracle.apps.ar.hz.v2api.HzPartyV2Pub;
import oracle.apps.ar.hz.v2api.HzCustomerProfileV2Pub;
class CreateCustAccount {
public static void main(String[] args) throws Exception {
HzCustAccountV2Pub.CustAccountRec p_cust_account_rec = new HzCustAccountV2Pub.CustAccountRec();
HzPartyV2Pub.PersonRec p_person_rec = new HzPartyV2Pub.PersonRec();
HzCustomerProfileV2Pub.CustomerProfileRec p_customer_profile_rec = new HzCustomerProfileV2Pub.CustomerProfileRec();
BigDecimal[] x_cust_account_id = new BigDecimal[1];
String[] x_account_number = new String[1];
BigDecimal[] x_party_id = new BigDecimal[1];
String[] x_party_number = new String[1];
BigDecimal[] x_profile_id = new BigDecimal[1];
String[] x_return_status = new String[1];
BigDecimal[] x_msg_count = new BigDecimal[1];
String[] x_msg_data = new String[1];
try
Class.forName ("oracle.jdbc.driver.OracleDriver");
OracleConnection conn = (OracleConnection) DriverManager.getConnection ("jdbc:oracle:thin:@ebiztst.trianz.int:1526:PATCH","apps","apps");
HzCustAccountV2Pub custaccountV2Pub = new HzCustAccountV2Pub();
p_cust_account_rec.account_name = "John Ac";
p_person_rec.person_first_name = "John";
p_person_rec.person_last_name = "Smith";
p_cust_account_rec.created_by_module = "TCA_EXAMPLE";
HzCustAccountV2Pub.createCustAccount(
conn
, "T"
, p_cust_account_rec
, p_person_rec
, p_customer_profile_rec
, "F"
, x_cust_account_id
, x_account_number
, x_party_id
, x_party_number
, x_profile_id
, x_return_status
, x_msg_count
, x_msg_data
System.out.println( "x_return_status = " + x_return_status[0] );
System.out.println( "x_msg_count = " + x_msg_count[0] );
System.out.println( "x_msg_data = " + x_msg_data[0]);
if (x_msg_count[0].intValue() > 1) {
OracleCallableStatement ocs = null;
for (int i=0; i<x_msg_count[0].intValue(); i++) {
ocs = (OracleCallableStatement)conn.prepareCall(
"begin ? := fnd_msg_pub.get( p_encoded => ’F’ ); end;");
ocs.registerOutParameter(1, OracleTypes.VARCHAR);
ocs.execute();
System.out.println((i + 1) + ". " + ocs.getString(1));
conn.close();
} catch (ClassNotFoundException e) {
System.out.println("Driver Not Found: " + e);
} catch (SQLException e) {
System.out.println("SQL Error." + e);
} -
Help/Example needed for creating JMSQueues/JMSTopics using the MBean API
I am trying to create JMSQueues programmatically using the MBean API. When
I use MBeanHome.createAdminMBean(), a queue appears in the root of the
config file. This is progress, but the queue is in the wrong place! I need
the queues to be part of my JMS server's "destinations" as seen on the
console.
So now I am trying to use createConfigurationMBean() instead, but I can't
figure out what the "parent" parameter should be- no documentation! My
first guess was that the parent might be the JMSServer, but that doesn't
work.
Anyone have example code to insert JMSQueues and JMSTopics into a specific
JMS server's destinations?
Here is the code I tried... All goes well until the final
createConfigurationMBean call, where it throws a MBeanCreationException:
// Get the MBeanHome bean
Object obj = jndiContext.lookup("weblogic.management.adminhome");
MBeanHome mbeanhome = (MBeanHome) javax.rmi.PortableRemoteObject.narrow
(obj, MBeanHome.class);
// Get the server MBean
JMSServerMBean jmsServerMB =
(JMSServerMBean)mbeanhome.getMBean("examplesJMSServer",
JMSServerMBean.class);
// Create the new Queue
JMSQueueMBean jmsQMB = (JMSQueueMBean)mbeanhome.createConfigurationMBean
("weblogic.examples.jms.fooQueue", "JMSQueue", jmsServerMB);Ok, I still don't see how I can do it differently with the admin tool. If
you want to see the commands I'm using, I can post them, but the basic one
is shown below in the previous message. We're trying to set up a script so
that developers can just run it and properly configure WebLogic with the
right components.
Thanks,
Michelle
"Michelle Baxter" <[email protected]> wrote in message
news:[email protected]...
I am using the weblogic.Admin tool, not doing this in code. I will attempt
to translate your advice when I get time again.
My commands look like this:
java weblogic.Admin -url 127.0.0.1:7001 -username system -passwordweblogic
CREATE -mbean "mydomain:Type=JMSQueue,Name=MyJMSQueue"
I create this, I create the JMSServer MBean, then do and INVOKE (insteadof
CREATE) and call the addDestination method, adding the JMS Queue MBeanthat
I created previously, using the same naming scheme as in the above CREATE.
"Viresh Garg" <[email protected]> wrote in message
news:[email protected]...
Daron Cole wrote:
You can use createConfigurationMBean with JMSQueueConfig but in the
end
I used
the code below to create a topic.The code that you posted is the right way to create queus/topics. alwayscreate admin mbeans to admin
server and let admin server internally create config Mbeans on the
managed
server as per the
location/targets that you set in admin Mbeans.
Queue's are the same, just replace the word
Topic with Queue and it should work. It should show up in the console
app.
MBeanHome home = (MBeanHome)ctx.lookup(MBeanHome.JNDI_NAME+".myserver");
ServerMBean myserver =(ServerMBean)home.getMBean("myserver",ServerMBean.class);
String topicName = "MyNewTopic";
JMSServerMBean jmsServerMB =(JMSServerMBean)home.getMBean("JMSServer","JMSServer","mydomain");
JMSTopicMBean jmsTopicMB =(JMSTopicMBean)home.createAdminMBean(topicName,"JMSTopic","mydomain");
jmsTopicMB.setJNDIName(topicName);
jmsServerMB.addDestination(jmsTopicMB);
Viresh Garg
Principal Developer Relations Engineer
BEA Systems
"Michelle Baxter" <[email protected]> wrote:
There is no JMSQueueConfigMBean. What do you mean?
"Daron Cole" <[email protected]> wrote in message
news:[email protected]...
Try JMSQueueConfig instead of JMSQueue.
"Michelle Baxter" <[email protected]> wrote:
Me too! I'm trying to use the weblogic.Admin class to set up
queues
and
topics and the JMS server. The same results in the config file:
the
queues
and topic were set up at the root, the JMS server was added, but
no
destinations, even though I invoked the addDestination method withthe
created MBean queues and topic as arguments. No exceptions, just
no
destinations on the JMS server resulted. What's the right order ofexecution
for this stuff??
Thanks,
Michelle
"Jude DeMeis" <[email protected]> wrote in message
news:[email protected]...
I am trying to create JMSQueues programmatically using the MBean
API.
When
I use MBeanHome.createAdminMBean(), a queue appears in the root
of
the
config file. This is progress, but the queue is in the wrong
place!
I
need
the queues to be part of my JMS server's "destinations" as seen
on
the
console.
So now I am trying to use createConfigurationMBean() instead,
but
I
can't
figure out what the "parent" parameter should be- no
documentation!
My
first guess was that the parent might be the JMSServer, but that
doesn't
work.
Anyone have example code to insert JMSQueues and JMSTopics intoa
specific
JMS server's destinations?
Here is the code I tried... All goes well until the final
createConfigurationMBean call, where it throws aMBeanCreationException:
// Get the MBeanHome bean
Object obj =
jndiContext.lookup("weblogic.management.adminhome");
MBeanHome mbeanhome = (MBeanHome)javax.rmi.PortableRemoteObject.narrow
(obj, MBeanHome.class);
// Get the server MBean
JMSServerMBean jmsServerMB =
(JMSServerMBean)mbeanhome.getMBean("examplesJMSServer",
JMSServerMBean.class);
// Create the new Queue
JMSQueueMBean jmsQMB =(JMSQueueMBean)mbeanhome.createConfigurationMBean
("weblogic.examples.jms.fooQueue", "JMSQueue", jmsServerMB);
Maybe you are looking for
-
Bins problem while creating goods receipt for production order.
Hi All, I am facing a problem with selection of bins while creating goods receipt for production order in transaction MB31 and MBBE. The order of filling bins is with respect to storage Unit not by document no, Please suggest something. The
-
Is it at all possible to connect an external HD to a time capsule into the USB port
I am trying to connect an external drive into USB port of a time capsule to increase capacity. How does one get this done?
-
What permission allows the changing of a file name
I have a custom ACL in which the group has the Modify and Delete permission bundles granted. When users attempt to change the filename of a file with this permissions they get an error. I see not error in the node log. What permission controls this?
-
Load balancing &scalability when OSB service is deployed in a single server
Hi We have a file write service which we are deploying to clustered domain with a single admin and managed server. This we are doing since there can be issue of file locking if it is deployed cluster with multiple managed server and when more than on
-
I'm using Livecycle Designer ES2 version 9. I have a 14 page form, most of it set to Flow. Somehow there's an extra blank page (pg. #10) that I cannot do anything with: if i add an object it puts it on the last page (14) and I'm unable to move it bac