SOA 12c – Error while processing audit information. failure due to exception fetching audit xml

While testing in SOA EM Console, if you get below error message for audit trail on launch of flow trace instead showing the actual flow it means that the flow message size is bigger than the default value which is set to 1048576.

Error Message: Error while processing audit information. failure due to exception fetching audit xml

So to view the flow, all you need to do is increase the default size given for audit trial. To do that follow below steps.

Right Click on your node server -> SOA Administration -> Common Properties -> More SOA Infra Advanced Configuration Properties (bottom link) -> Click on ‘Audit Config’ attribute from the list -> Increase the value (eg: 10485760) -> Apply.

This slideshow requires JavaScript.

Hope this is helpful.

Advertisements

EXCEPTION_ACCESS_VIOLATION error in JDeveloper 12c

When you run an application (ADF/SOA) in JDeveloper 12c, if you come across below error ‘EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000061c0fc2a, pid=6556, tid=6848’, then to fix the issue you just need to perform few simple steps. This is actually a JVM bug in few version of java (I got this issue with Java version jdk1.8.0 when deploying applications to Integrated weblogic server)

Error Log:


#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x0000000061c0fc2a, pid=6556, tid=6848
#
# JRE version: Java(TM) SE Runtime Environment (8.0-b132) (build 1.8.0-b132)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.0-b70 mixed mode windows-amd64 compressed oops)
# Problematic frame:
# V [jvm.dll+0x23fc2a]
#
# Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
#
# If you would like to submit a bug report, please visit:
# http://bugreport.sun.com/bugreport/crash.jsp
#

jre_error.PNG

Fix: 

  1. Install latest version of Java (jdk1.8.0_162 worked for me).
  2. Check the JDK version in JDeveloper ‘Help -> About -> Version’. If the version is not latest then close JDeveloper.

jdk_version.PNG

3. Update the file ‘JDEV_HOME/jdeveloepr/jdev/bin/jdev.conf’ file, where update SetJavaHome path with latest jdk version.

SetJavaHome C:\Program Files\Java\jdk1.8.0_162

4. Open JDeveloper and again check the Java version (It should be updated with the version that you mentioned in jdev.conf file) . Now run the application, it should be deployed and able run successfully.

If you find this post useful Hit Like & post your comments. Happy Coding 🙂 

References (IF you want to explore more about issue and the above post doesn’t resolve your issue):

https://confluence.atlassian.com/confkb/java-crash-exception_access_violation-vmthread-235669512.html

https://docs.oracle.com/javase/7/docs/webnotes/tsg/TSG-VM/html/crashes.html/crashes

https://bugs.openjdk.java.net/browse/JDK-8154831

https://bugs.java.com/bugdatabase/view_bug.do?bug_id=8181200

https://windowsreport.com/exception-access-violation-windows-10/

 

 

Managing Users in Web Logic Server Programatically

This Post describes about how to manage the users in weblogic server programatically.

A sample WebCenter Portal Application is created in that a page has been created for managing the users (creating) and a java class has been created which basically performs the required operations that we do from front end.

Steps to Create the Users Progrmatically:

1) Create the WebCenter Portal Framework Application

Snap1

2) Create a java class which basically contains all the code to manage the users in weblogic server

Snap2

Code for the customCreateUser class:


package portalbeans;

import java.util.logging.Level;

import javax.faces.event.ActionEvent;

import oracle.security.idm.UserProfile;
import oracle.security.idm.IdentityStore;
import oracle.security.idm.UserManager;
import oracle.security.idm.PropertySet;
import oracle.security.idm.Property;

import oracle.webcenter.security.common.WCSecurityUtility;

import oracle.adf.share.logging.ADFLogger;
import oracle.adf.view.rich.component.rich.input.RichInputText;

public class customCreateUser {
String firstname;
String lastname;
String mailId;
String loginName;
String password;
String phNumber;
String address;
// Initialize ADF Logger
private static ADFLogger adfLogger =
ADFLogger.createADFLogger(customCreateUser.class);

private static String CLASS_NAME = "customCreateUser";

/**
* Creates user with the given attributes.
*
* @param firstName
* @param lastName
* @param mailId
* @param loginName
* @param password
*/

public void runMehod(ActionEvent actionEvent) {
//createUser("Raviteja", "Yellina", "emailId@weblogic.com",
// "ravi", "welcome123", "123708459", "bangalore");

createUser(firstname,lastname, mailId,loginName, password, phNumber, address);
}
public static void createUser(String firstName, String lastName,
String mailId, String loginName,
String password, String phoneNum,
String address) {
try {
System.out.println("try");
// Get the default identity store
IdentityStore idStore =
WCSecurityUtility.getDefaultIdentityStore();

// Get the user manager object
UserManager um = idStore.getUserManager();
System.out.println("got user mgr");

// Create a property for the extra attributes
PropertySet ps = new PropertySet();

ps.put(new Property(UserProfile.FIRST_NAME, firstName));
System.out.println("FIRST_NAME:" + firstName);

ps.put(new Property(UserProfile.LAST_NAME, lastName));
System.out.println("LAST_NAME:" + lastName);

ps.put(new Property(UserProfile.BUSINESS_EMAIL, mailId));
System.out.println("BUSINESS_EMAIL:" + mailId);

ps.put(new Property(UserProfile.USER_NAME, loginName));
System.out.println("USER_NAME:" + loginName);

ps.put(new Property(UserProfile.DISPLAY_NAME,
firstName + " " + lastName));
System.out.println("DISPLAY_NAME:" + firstName + " " + lastName);

ps.put(new Property(UserProfile.HOME_PHONE, phoneNum));
System.out.println("HOME_PHONE:" + phoneNum);

ps.put(new Property(UserProfile.HOME_ADDRESS, address));
System.out.println("HOME_ADDRESS:" + address);

// to create it in weblogic server
// Call the create user api with loginame, password and extra properties
um.createUser(loginName, password.toCharArray(), ps);
System.out.println("created user");
} catch (Exception e) {
if (adfLogger.isWarning()) {
adfLogger.logp(Level.WARNING, "createUser", CLASS_NAME,
"Could not create user");
adfLogger.warning(e);
}
}
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}

public String getFirstname() {
return firstname;
}

public void setLastname(String lastname) {
this.lastname = lastname;
}

public String getLastname() {
return lastname;
}

public void setMailId(String mailId) {
this.mailId = mailId;
}

public String getMailId() {
return mailId;
}

public void setLoginName(String loginName) {
this.loginName = loginName;
}

public String getLoginName() {
return loginName;
}

public void setPassword(String password) {
this.password = password;
}

public String getPassword() {
return password;
}

public void setPhNumber(String phNumber) {
this.phNumber = phNumber;
}

public String getPhNumber() {
return phNumber;
}

public void setAddress(String address) {
this.address = address;
}

public String getAddress() {
return address;
}
}

3) Create a jspx page for creating the users from front end

Snap5

Code for the page  manageUsers.jspx


<?xml version='1.0' encoding='UTF-8'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
<jsp:directive.page contentType="text/html;charset=UTF-8"/>
<f:view>
<af:document id="d1" inlineStyle="background:#efefef">
<af:form id="f1">
<af:panelGroupLayout id="pgl1" layout="vertical" inlineStyle="background:#fff;padding:100px 200px;;">
<af:outputText value="User Creation:" inlineStyle="font-size:18px;"
id="ot1"/>
<af:spacer height="10px" id="s1"/>
<af:panelFormLayout labelAlignment="top">
<af:inputText label="First Name" contentStyle="font-size:14px;" inlineStyle="padding:8px 0px;font-size:16px;"
value="#{customCreateUser.firstname}" id="it1"/>
<af:inputText label="Last Name" contentStyle="font-size:14px;" inlineStyle="padding:8px 0px;font-size:16px;"
value="#{customCreateUser.lastname}" id="it2"/>
<af:inputText label="Email Id" contentStyle="font-size:14px;" inlineStyle="padding:8px 0px;font-size:16px;"
value="#{customCreateUser.mailId}" id="it3"/>
<af:inputText label="Address" contentStyle="font-size:14px;" inlineStyle="padding:8px 0px;font-size:16px;"
value="#{customCreateUser.address}" id="it4"/>
<af:inputText label="Phone Number" contentStyle="font-size:14px;" inlineStyle="padding:8px 0px;font-size:16px;"
value="#{customCreateUser.phNumber}" id="it5"/>
<af:inputText label="Login Name" contentStyle="font-size:14px;" inlineStyle="padding:8px 0px;font-size:16px;"
value="#{customCreateUser.loginName}" id="it6"/>
<af:inputText label="Password" contentStyle="font-size:14px;" inlineStyle="padding:8px 0px;font-size:16px;"
value="#{customCreateUser.password}" id="it7" secret="true" />
<af:commandButton text="Create User" id="cb1" inlineStyle="padding:5px 10px;margin:10px 0px 0px -5px"
actionListener="#{customCreateUser.runMehod}"/>
</af:panelFormLayout>
</af:panelGroupLayout>
</af:form>
</af:document>
</f:view>
</jsp:root><strong>
</strong>

4)  Run the page and fill all the fields present in the page and click on button Create User

Snap8

5) The user will be created successfully in the weblogic server. You can check the user details in the following location: Home -> Security Realms -> myrealm -> Users and groupsSnap9

6) Click on the user and in the attributes section you can see attribute values which you gave in the front end page

Snap10