Sunday, May 5, 2013
Thursday, April 25, 2013
Examples of Date and Time Formatting
########
Oracle Fusion Middleware Adapters
Technology adapters are included in the Oracle Internet
Application Server and WebLogic Suite license upon which the Oracle SOA Suite
has a licensing dependency. Other adapter types are licensed separately.
Financial Service adapters, along with Financial Message
Designer, are separately licensed standalone products which inter operate with
Oracle Service Bus. They are not JCA adapters like the other integration
adapters. They include:
SWIFT Adapter for
Oracle Service Bus
FIX Adapter for
Oracle Service Bus
Payments Adapter
for Oracle Service Bus
Derivatives
Adapter for Oracle Service Bus
An additional separately licensed adapter, Enterprise Link
for Business Activity Monitoring, is offered as an extension of the Oracle BAM
product for customers who are looking to leverage Oracle BAM's embedded
extract, transform and load (ETL) tooling. Enterprise Link is only one of five
major ways to source data into Oracle BAM and is not required in all customer
implementations. Customers who do not need Enterprise Link are any customers
connecting to Oracle BAM only through BPEL PM Sensors or the Web Services API
for Oracle BAM's Active Data Cache. Enterprise Link is required for all
customers connecting to Oracle BAM through JMS queues or though query-based ETL
updates. This includes customers who want to listen to JMS messages in existing
integration environments, transfer large data sets into BAM, or archive data
out of the BAM Active Data Cache on a scheduled basis.
|
########
Labels: Adapter, SOA Suite 11g
Creating report based on External Data Source (Database table) – Oracle BAM
In Oracle BAM the reports can be created based on the
external database table.This post will explain the steps required to build a simple
report based on the external database table.
Create the External Database:
Creating the Data object based on the External Data Source:
Creating the report:
|
########
Labels: BAM, SOA Suite 11g
Creating the reports based on the data from weblogic JMS queue – Oracle BAM
Oracle BAM supports the reporting based on the data from External
Messaging Sources.
This post explains the steps to create a report based on the
data from the weblogic Queue.
Create the data object:
Create a data object with required fields to populate the
data from the JMS Queue (Refer the previous post for the steps to create the
Data Object).Here I am creating the Employee data object with three fields.
Configure the External Messaging Source:
These steps configure the JMS queue and map the JMS data to
the data object (Employee) created in the previous step.
XML Formatting – Pre-Processing can be
used to process the incoming xml message with XSLT (For this scenario I am not
using any XSLT processing).
<?xml
version="1.0" encoding="UTF-8"?>
<EMPLOYEEDETAILS
xmlns="http://bamems.sample.com">
<EMPNAME>Albin</EMPNAME>
<EMPNO>24</EMPNO>
<EMPAGE>27</EMPAGE>
</EMPLOYEEDETAILS>
<?xml
version="1.0" encoding="UTF-8"?>
<EMPLOYEEDETAILS
xmlns="http://bamems.sample.com">
<EMPNAME>Albin</EMPNAME>
<EMPNO>24</EMPNO>
<EMPAGE>27</EMPAGE>
</EMPLOYEEDETAILS>
Create the Report:
|
########
Labels: BAM, SOA Suite 11g
Send the reports to external email ids through Alerts - Oracle BAM server.
By default we can’t send the reports to an external email id’s
from a BAM server, the reports only can be send to a users configured with
Oracle BAM servers(through weblogic console).This post will explain how to enable the BAM server to send
the reports to the external email ids.
Before following this post the email drivers details should
be configured in UMS (through em console).
By default AlertActionAllowExternalEmail property in the BAMCommonConfig.xml
file is set as false.
Change the value of AlertActionAllowExternalEmail property
to true in the BAMCommonConfig.xml file to enable the external email feature. The
BAMCommonConfig.xml
file can be located in the following location
BAM_DOMAIN_HOME/BAMDomain/config/fmwconfig/servers/BAMManagedServer/applications/oracle-bam_11.1.1/config.
Create an Alert to send the report to the External Email:
The below is the email sent the external email is.
|
########
Labels: BAM, SOA Suite 11g
Migrating the BAM objects across environments with the ANT script – Oracle BAM 11g
This post explains how to use the ANT script to migrate the BAM objects
across the environments.The script can be run remotely from the client
machine or from the server machine.
<ICommand_Default_Password>hiyEbs0vwXPQrKh8yE7z3f7JVNhmLLEe+cR3bansiPc=</ICommand_Default_Password> Also verify the ADCServerPort - the BAM Server http listening port and ADCServerName - BAM Server host name properties. Content of the configuration file: <?xml version="1.0" encoding="UTF-8"?><BAMICommand> <ADCServerPort>9001</ADCServerPort> <ADCServerName>BAM Server hostname</ADCServerName> <ICommand_Default_User_Name>weblogic</ICommand_Default_User_Name> <ICommand_Default_Password>hiyEbs0vwXPQrKh8yE7z3f7JVNhmLLEe+cR3bansiPc=</ICommand_Default_Password> <Communication_Protocol>t3</Communication_Protocol> <SensorFactory>oracle.bam.common.statistics.noop.SensorFactoryImpl</SensorFactory> <GenericSatelliteChannelName>invm:topic/oracle.bam.messaging.systemobjectnotification</GenericSatelliteChannelName> </BAMICommand> Default password should be encrypted else you will be receiving “ICommandEngine.MissingCredentials” error. To encrypt the password configure the BAMICommandConfig.xml file in the $ORACLE_HOME/bam/config folder with the plain text password and run any standard icommand from the server (e.g $ORACLE_HOME/bam/bin/icommand -cmd export -type dataobject -name SampleDO -file C:\temp\SampleDO.xml) that will encrypt the password.
<!--import dataobjects--> <Export name="/Albin/BAMWebservice" type="dataobject" file="$BAM_PROJ_HOME$/BAMWebservice.xml"/> <Export name="/SampleDO" type="dataobject" file="$BAM_PROJ_HOME$/SampleDO.xml"/> </OracleBAMCommands> Configure the required export commands (exporting different type of objects) into this file.
<!--import dataobjects--> <Import file="$BAM_PROJ_HOME$/BAMWebservice.xml"/> </OracleBAMCommands> Configure the required import commands into this file.
<!--import the property file--> <property environment="env"/> <property name="src.dir" value="."/> <property name="proj.home" value="${env.BAM_PROJ_HOME}"/> <property name="oracle.home" value="${env.ORACLE_HOME}"/> <property name="oracle.common.home" value="${env.ORACLE_COMMON_HOME}"/> <property name="bam.core.lib.dir" value="${env.ORACLE_HOME}/bam/modules/oracle.bam_11.1.1"/> <property name="bam.tp.lib.dir" value="${env.ORACLE_HOME}/bam/modules/oracle.bam.thirdparty_11.1.1"/> <property name="dms.lib.dir" value="${env.ORACLE_COMMON_HOME}/modules/oracle.dms_11.1.1"/> <!--BAM Classpath required by icommand application--> <path id="bamClasspath"> <fileset file="${bam.core.lib.dir}/oracle-bam-icommand.jar"/> <fileset file="${bam.core.lib.dir}/oracle-bam-common.jar"/> <fileset file="${bam.core.lib.dir}/oracle-bam-adc-ejb.jar"/> <fileset file="${dms.lib.dir}/dms.jar"/> <fileset file="${bam.tp.lib.dir}/jgroups-core.jar"/> <fileset file="${bam.tp.lib.dir}/xstream-1.3.1.jar"/> <fileset file="${bam.tp.lib.dir}/commons-codec-1.3.jar"/> <fileset file="${oracle.home}/../wlserver_10.3/server/lib/weblogic.jar"/> <fileset file="${oracle.common.home}/modules/org.jaxen_1.1.1.jar"/> </path> <!--export BAM DOs through icommand--> <target name="export" description="Export BAM dataobjects and reports" depends="config"> <delete dir="${basedir}/BAMObjects" includeemptydirs="true" includes="*/**"></delete> <java classname="oracle.bam.icommand.Application" fork="true" dir="${src.dir}" classpathref="bamClasspath"> <sysproperty key="oracle.bam.debug" value="true"/> <arg value="-CmdFile"/> <arg value="${basedir}/Export_BAM_Objects.xml"/> </java> </target> <!--import BAM DOs through icommand--> <target name="import" description="Import BAM dataobjects and reports" depends="config"> <java classname="oracle.bam.icommand.Application" fork="true" dir="${src.dir}" classpathref="bamClasspath"> <sysproperty key="oracle.bam.debug" value="true"/> <arg value="-CmdFile"/> <arg value="${basedir}/Import_BAM_Objects.xml"/> </java> </target> <!--Modify bam icommand files--> <target name="config"> <!--replace $project.home$ with the actual project directory inside the command file--> <replace file="Export_BAM_Objects.xml" token="$BAM_PROJ_HOME$" value="${basedir}/BAMObjects"/> <replace file="Import_BAM_Objects.xml" token="$BAM_PROJ_HOME$" value="${basedir}/BAMObjects"/> </target> </project>
The objects will be exported based on the commands in the
Export_BAM_Objects.xml as an xml file to the BAMObjects folder
ant –f BAMBuild.xml import
The xml file contents will be imported to BAM based on the commands in the Import_BAM_Objects.xml
Copy the commons-codec-1.3.jar file from the server location
${env.ORACLE_HOME}/bam/modules/oracle.bam.thirdparty_11.1.1 to the
<JDEV_HOME>\ jdeveloper\bam\modules\oracle.bam.thirdparty_11.1.1
|
########
Labels: BAM, SOA Suite 11g
Recovering the BPEL instances from Java For all faulted invoke
Written By Archit Bhardwaj
There are three types of Recoverable messages in BPEL Recovery console
There are five message
states for each type
1.
Undelivered
2.
Resolved
3.
Delivered
4.
Cancelled
5.
Exhausted
The Classes mentioned below are used only to recover messages in
Undelivered Message state.
·
FaultRecoveryForInvoke.java- It recovers undelivered
recoverable Invoke instances based on Composite Name.
·
FaultRecoveryForInvokeAll.java- It
recovers all the Undelivered recoverable Invoke instances.
·
FaultRecoveryForCallback.java- It
recovers undelivered recoverable Callback instances based on Composite Name.
·
FaultRecoveryForCallbackAll.java- It
recovers all the Undelivered recoverable Callback instances.
The state set for
undelivered instances is 0 in the code.
For recovering
messages from other states ,the filter.setState(x) can be changed to :-
0 for Undelivered
1 for Resolved
2 for delivered
3 for Cancelled
4 for exhausted
The jar files used for the
code are :-
***************************************************************************
package Recovery.client;
import java.util.Hashtable;
import java.util.List;
import
java.util.ListIterator;
import java.util.Scanner;
import
javax.naming.Context;
import
oracle.soa.management.facade.Locator;
import
oracle.soa.management.facade.LocatorFactory;
import
oracle.soa.management.facade.bpel.BPELServiceEngine;
import
oracle.soa.management.facade.bpm.BPMInvokeMessage;
import
oracle.soa.management.util.MessageFilter;
public class
FaultRecoveryForInvokeAll{
private Locator locator = null;
private BPELServiceEngine
mBPELServiceEngine;
public FaultRecoveryForInvokeAll(){
System.out.println("Inside
Constructor");
locator = this.getLocator();
try{
System.out.println("Try
Block of Constructor");
mBPELServiceEngine=(BPELServiceEngine)locator.getServiceEngine(Locator.SE_BPEL);
}
catch (Exception e){
e.printStackTrace();
}
}
// Setting up connection properties
public Hashtable getJndiProps(){
System.out.println("Inside getJndiProps");
Hashtable jndiProps = new Hashtable();
jndiProps.put(Context.PROVIDER_URL,"t3://manish:7501/soa-infra");
jndiProps.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
jndiProps.put(Context.SECURITY_PRINCIPAL, "manish");
jndiProps.put(Context.SECURITY_CREDENTIALS,
"********");
jndiProps.put("dedicated.connection", "true");
System.out.println("Connection Successfull");
return jndiProps;
}
//Creating the locator to set up the connection to the server
public Locator getLocator(){
System.out.println("Inside
getLocator");
try{
System.out.println("Try Block
of getLocator");
return
LocatorFactory.createLocator(getJndiProps());
}
catch(Exception e){
e.printStackTrace();
}
return null;
}
// Reovering all recoverable faults listed under invoke and
having the state Undelivered as on BPEL Recovery Console
public void recoverFaults(){
System.out.println("Inside
recoverFaults");
try{
int i=1;
System.out.println("Try Block
of recoverFaults");
MessageFilter filter=new
MessageFilter();
//filters can be set according to
desired criteria
filter.setState(0);
//Getting all recoverable messages
System.out.println("Getting
Recoverable messages");
List<BPMInvokeMessage>
recoverable=mBPELServiceEngine.getInvokeMessages(filter);
ListIterator it=recoverable.listIterator();
while(it.hasNext()){
System.out.println("Record
number----->>>"+i+"\t"+it.next());
i++;
}
System.out.println("total
number of records-------->>>>>"+recoverable.size());
//Recovering all recoverable
messages
mBPELServiceEngine.recoverInvokeMessages(recoverable);
System.out.println("Messages
Retried in one chance");
}
catch (Exception e){
e.printStackTrace();
}
}
public static void main(String[] args){
// calling the method recoverFaults
FaultRecoveryForInvokeAll faultRecovery
= new FaultRecoveryForInvokeAll();
faultRecovery.recoverFaults();
}
}
************************************************************************
|
########
Labels: BPEL Recovery, SOA Suite 11g
Subscribe to:
Posts (Atom)