Thursday 1 May 2014

Oracle Primavera PPM Solution

Primavera is Project Portfolio Management (PPM) Suite from Oracle used for Project Forecasting and long term decision making.  
I get a chance to look and work with this product and find it very much interesting and excited product. It has following modules

Client Modules
1.      Project Management Module
              This module is use for project and resource management 
2.      Time Sheet Application
TimeSheets enables Web based team communication and time keeping for projects and tasks. 
3.      Methodology Management
This module stores methodologies of authoring or storing as templates for new projects. Organizations can gather its best practices and they can be used further.

Server Components \ Modules
Primavera has two main server components
1.      Relational Database Management System
RDBMS stores every project and project methodologies related data into a separate central database server. Normally it requires two databases Oracle and Microsoft SQL Server or SQL Server Express. I’ll not go into the details here. Details can be found on following link


2.      Group Server

Group Server is a Windows 2003/2008 service that runs on your Web Server (e.g. IIS) and it allows clients to download Timesheets from that sever using Web browsers.

Group server is necessary if you’re planning to use Time sheets module which is a client module.
It acts as an intermediary between TimeSheets client and project management database

Additional Components \ Modules
Following are few additional components that can be used with Primavera. These are all optional modules but if you use them you’ll actually be expanding the functionality of Primavera solution.
1.      P6 Web Access  
P6 Web Access was previously also known as “myPrimavera” or “Primavera’s Web Application” but its new name is now P6 Web Access.
This provides project analysis, portfolio and resource information across the organization and allows users to access project management data over the internet (locally hosted application).
It has Dashboard which can be customized or personalized at user level. Filters can be applied on project related data so that only relevant users and roles can access respective data.
For further details information can be attained from following link


2.      Distributed Job Service
It is a Windows 2003/2008 service which runs a job at a preconfigured interval on project data. These jobs are created by users in Project Management Module.
3.      Project Link
Additionally we also have plugin for Primavera so that Microsoft Project users to work in MSP environment while being connected to Primavera’s enterprise features.

4.      Software Development Kit (SDK)
SDK provides us the facility to integrate the data between Primavera and any external system (database or application). SDK provides access to the schema and to business logic.  SDK can be installed on any machine that needs to integrate with Primavera database.  It supports following things
Open Database Connectivity (ODBC) standard
ODBC-Compliant interfaces (OLE DB) for connecting to the project management database


Wednesday 10 April 2013

JMS Bridge failed to Start Up

WLS Messaging Bridge failed to start up


A WebLogic messaging bridge is a forwarding mechanism between any two messaging products. Message bridge is use to provide interoperability between separate implementations of WebLogic JMS, or between WebLogic JMS and another messaging product


There was a scenario in which we have to create a bridge but after configuring the message bridge when I check its monitoring tab it was showing following warning message

WARN: failed to look up the source adapter

Bridge was in In Active state.



After checking the documentation I found its a known and very common problem which one face while bridge configuration.

In my case the resolution was bit different. I was creating a Bridge on SOA Cluster and everything seems to be fine with rest of the bridges created for OSB Cluster but same things were not fine in case of SOA.

After a lot of efforts one of my colleague told me to check if everything is fine with my JMS-XA-ADP jar file deployed on my admin server.

When I check that resource deployment I noticed it was missing SOA as a target. After assigning SOA Cluster in a target Bridge start working fine and messages were picked from my queue by that bridge and forwarded to destination queues on another Server. ( which was WLS in my case).


I hope this helps to the readers as well :)





Tuesday 19 February 2013

Step by Step Guide to Create Transaction in Oracle BTM

End to End Monitoring is becoming a must have solution for now a days application. As business transaction needs to be monitored in complex scenarios where we're navigating from one systems to another and wants to manage if information is propagated to end systems successfully. 

I will not go into the details here as its very well written on other places on internet.

Here I will explain how to create one simple  BTM Transaction.

Our Test service is simple one.. BTM HelloWorld. it takes one parameter and calls another service BTM Consumer Service on some other location where BTM Observer is not installed.

Now we're going to monitor this using BTM.

First Step is to login to BTM UI and click on Create Transaction link from top left corner of BTM UI as shown in following figure

 Then following screen will come up.


Then we need to select add Operation button as shown highlighted in following  gui


browse the service in our case it is BTM Hello world.


On next tab select the logging options as shown in following screen.


After finishing with the transaction creation control will goes back to main screen which will be showing the transaction detail as following.



Now we will give call to our BTM Hello World Service either from SOAPUI or from em console. And will come back to see if the transaction is logged in BTM.

We can see the transaction details like throughput, completed transactions etc along with the message logs as shown in following screen short.



 Following screen shows the Analysis for our BTM Trans 1


Following screen shows the conditions for our BTM Trans 1


Following screen shows the policies for our BTM Trans 1


Following screen shows the Summary for our BTM Trans 1

 Following screen shows the Instances for our BTM Trans 1


This was the simplest good to start of creating transactions on BTM. But I am still exploring it and will come up with more stuff in future.


Friday 8 February 2013

Oracle Apps Adapter in SOA 11g vs Apps Adapter in SOA 10 g

Once migrating our integrations from oracle Soa 10 g to 11g we faced issue while calling oracle APIs using Oracle apps adapter. Everything looks fine at OEBS side. Because integration from SOA 10g was still working perfect and when we try to execute migrated interface from SOA 11g fails...

We had checked the JCA settings several times. Responsibility and user were correctly assigned as the same values were working fine for 10g.

After investigating a lot we decided to debug the Apps Adapter jar file deployed on SOA 11g as it's version was different on SOA 10g. We got a solution from there as there were few SQL queries this apps adapter calls before executing the Apis and our user don't had access to query those tables.

In my next post I wi try to share the details of it.

But it's quite strange that this information or clue for such problem was not available or I was not able to find it over the Internet nor at oracle support.

Wednesday 30 January 2013

Apps Adapter Fails due to invalid Apps Context


While calling API from Oracle SOA 11g using OracleApps Adapter. BPEL Process which was calling API of OEBS fails and give error that  Invalid Apps Context.

Fault Thrown by SOA Component


2012-11-29T07:54:53.629+01:00] [soa_server1] [ERROR] [] [oracle.soa.bpel.engine.dispatch] [tid: orabpel.invoke.pool-4.thread-17] [userId: <anonymous>] [ecid: 75f494dcfdf9a2f6:12e9d78e:13b46f8f54b:-8000-00000000000078df,1:23847] [APP: soa-infra] failed to handle message[[
com.oracle.bpel.client.BPELFault: faultName: {{http://schemas.oracle.com/bpel/extension}bindingFault}
messageType: {{http://schemas.oracle.com/bpel/extension}RuntimeFaultMessage}
parts: {{
summary=<summary>Exception occured when binding was invoked.
Exception occured during invocation of JCA binding: "JCA Binding execute of Reference operation 'APPS_AP_VENDOR_SITES_PKG_INSERT_NEW' failed due to: Apps Context Error.
Error occurred while setting up Apps Context.
Context parameters should be valid.
Contact oracle support if error is not fixable.
".
The invoked JCA adapter raised a resource exception.
Please examine the above error message carefully to determine a resolution.
</summary>
,detail=<detail>ORA-00942: table or view does not exist
</detail>
,code=<code>EBzA-057</code>}

Solution

 There could be more then one causes of the above problem.

1. User and responsibility in JCA file is not properly defined.

<jca:binding />
<operation name="APPS_AP_VENDOR_SITES_PKG_INSERT_NEW">
<jca:operation
IRepInternalName="PLSQL:AP_VENDOR_SITES_PKG:INSERT_ROW"
SchemaName="SYS_USER"
PackageName="AP_VENDOR_SITES_PKG"
ProcedureName="INSERT_ROW"
InteractionSpec="oracle.tip.adapter.apps.AppsStoredProcedureInteractionSpec"
Username="sysadmin"
Responsibility="System Administrator" >
</jca:operation>

 
2. User mentioned in JCA properties do not have access\correct responsibility assigned in OEBS setup

Following properties should be correctly mentioned in JCA file as well as in OEBS setup.

Username="sysadmin"
Responsibility="System Administrator" 


3. User in jdbc datasource doesn't have enough rights to execute the API.

In my case problem was with the datasource user which was configured in WLS console doen't had enough rights. I provide with super user or apps user to access or execute the Apps Adapter from SOA plateform and my problem was resolved.

I hope this solution helps.

Tuesday 13 November 2012

Oracle SOA: DB Adapter Singleton behaviour in High Availabilit...

Oracle SOA: DB Adapter Singleton behaviour in High Availabilit...: There was a problem which one can face in high availability environment (clustered) . We had one Integration between Oracle Ebiz a...

DB Adapter Singleton behaviour in High Availability Environment

There was a problem which one can face in high availability environment (clustered) . 

We had one Integration between Oracle Ebiz and third party system in which we get data from Oracle Ebiz and send them to third party application. This integration was running fine till the time our server environment upgraded for high availability means clustered ones...
We had two clustered which were configured to be synchronous to idealised HA situation. But this causes one design issue in that Integration. 

The issue starts coming in our DB Adapter that now the DB Adapter starting polling Staging table(OEBS)  in parallel with the initialised interval. Cluster1 and Cluster2 starts initiating DB Adapter instances in parallel and if we increase the clusters form 2 to 3. The same way three instances of pooling components started. Which leads to a situation in which if we increase the clusters in future from 2 to 50 then in parallel 50 instances of pooling component will be created in parallel and will hit the third party application in parallel. This could be a problem for a target system if it doesn't supports parallel processing.

The solution to this problem was that we need a concept of singleton pattern in our pooling component / DB Adapter.

There's a property of Inbound endpoint lifecycle support within Adapters called Singleton.
To enable this feature for high availability environment for a given inbound adapter endpoint, one must add the singleton JCA service binding property in the composite.xml within the <binding.jca> element and set it to a value of true as shows.


Singleton Property in composite.xml

    <binding.jca config="bindin_file.jca">
        <property name="singleton">true</property>
    </binding.jca> 
 
This was our finding to the problem we faced in clustered environment.

I hope this helps others as well.

 
 

Wednesday 18 July 2012

AIA Artifacts reference problem in JDeveloper using oramds

After finishing up with AIA 3.0 Installation when I starts building my component in JDeveloper on compilation I got errors which were pointing to my bpelprocess.wsdl and from there I come to know that one import is not proper which is actually pointing to AIA Artifact.

<wsdl:import namespace="http://schemas.oracle.com/bpel/extension"
              location="oramds/apps/AIAMetaData/AIAComponents/UtilityArtifacts/RuntimeFault.wsdl"/>

Solution

1.Check if the connection to MDS repositery is Created and if not then create a database connection to connect to the repository with either DEV_MDS or equivalent user.

2. Check if you have already created SOA-MDS connection (from resource palette) If not then create a new SOA-MDS connection. Make sure it uses the DB connection in step1 and also the partition is soa_infra. as by default its not soa_infra.

3. Now check for successful connection and installation of AIA Components by browsing AIAComponent files from MDS. These will be shown under /Apps/MetaData.

4. The last and very important step is to update adf-config.xml file in application home of your Jdeveloper(directory where .jws file exists). This will be used at design time to access files from MDS using oramds protocol. This is located in directory named %APPLICATION_HOME%/.adf/META-INF.
    
Add following line in adf-config.xml

      <metadata-namespaces>
          <namespace metadata-store-usage="mstore-usage_3" path="/apps" />
      </metadata-namespaces>

     <metadata-store-usage id="mstore-usage_3">
        <metadata-store class-name="oracle.mds.persistence.stores.db.DBMetadataStore">
         <property value="DEV_MDS" name="jdbc-userid" />
         <property value="welcome1" name="jdbc-password" />
         <property value="jdbc:oracle:thin:@hostname:port:sid" name="jdbc-url" />
         <property value="soa-infra" name="partition-name" />
     </metadata-store>
     </metadata-store-usage>

After updating file now you can recompile and this time you will surely end up with no errors.
You can now start accessing the artifacts like WSDLs, XSDs etc using oramds. 
eg:oramds/apps/AIAMetaData/AIAComponents/UtilityArtifacts/RuntimeFault.wsdl