Monthly Archives: September 2010

Bored of the same old Jdeveloper splash


If you get bored with the same old splash screen for jdeveloper, then go straightaway and modify the file from

${JDEV_HOME}/jdev/bin/splash.gif

Do not change the dimension. Look at mine  🙂

Keep playing…

Jdeveloper system folder in windows


I was wondering where the system folder in windows resides. searched all the place and stopped until i got this

C:\Documents and Settings\{user_id}\Application Data\JDeveloper


Quick look at the mediator component


What is Oracle Mediator Component?

Mediator is the load balancer which can route, filter, validate and transform data from the service providers to external references

  • Route: determines the service component to which the message has to be sent
  • Validate: validate the incoming payload information
  • Filter: Filters the payload for specific information before routing it to the specific component
  • Transformation: Transforms data from one xsd format to another using XSL Mapper

the code specific to mediator in the composite.xml will be like

<component name="ConversionMediator">
<implementation.mediator src="ConversionMediator.mplan"/>
</component>

Mediator component in the design view consist of

Name: Name of the mediator component

WSDL Url: the service provider URL

Port Type: The port on which the request message is sent

Resequence Level: Whether the sequencing of the incoming message will be taken care commonly[Operation] or for each component [component]

Priority: priority set for parallel routing rule

validate XSD: validate the schema for the incoming message

Callouts: specifies java classes for extra logic in programmatic way

Resequence:

Standard -> the incoming message will be sequence based on the sequence id

Best Effort -> sequencing based on the best possible way

FIFO ->  sequencing of message based on the time of the arrival of the message

Static Routing:

routing rule based on static information

Filter -> content based or header based routing

Transform -> using xsl mapper file

validate -> using schematron file

Assign -> assign header,payload values of the message from source to target

sequential -> rule executed one after the other

Parallel -> rule executed in parallel. Priorities are given to the parallel rule

Dynamic Routing:

routing rule based on external rule which keeps changing based on the invocation context

Fault Handling: This is handled in composite or at the component[mediator] level by specifying fault policies

Event Handling: A mediator can subscribe or publish an event

Soa Suite 11gR1 (11.1.1.3.0) installation guide for Windows


The complete Soa suite installation guide is uploaded here

Complete fusion middleware documents are available at

http://download.oracle.com/docs/cd/E14571_01/index.htm

System requirements and specifications

Checklist

  • Processor
  • Operating System
  • Disk Space
  • Physical Memory
  • Browser
  • JDK

Complete requirments are available at

http://www.oracle.com/technetwork/middleware/ias/downloads/fusion-requirements-100147.html

Download the files

All software can be downloaded from the Fusion Middleware 11gR1 PS2 download page (also known as the FMW download page)

Installation procedure [RCU version 11.1.1.3]

  1. Oracle DB (OracleXE Univ)
  2. Weblogic Server 10.3
  3. Repository Creation Utility for DB schema 11.1.1.3
  4. Soa Suite 11.1.1.2
  5. Soa Suite patchset installer for 11.1.1.3
  6. Jdeveloper 11.1.1.3
  7. Soa Extension (Oracle SOA Composite Editor)
  8. Weblogic domain creation

If you face any problem in creating the DB schema using RCU 11.1.1.3 then please download the RCU 11.1.1.2 and follow this installation process. Also you will face some issues in creating the Weblogic db schema for soa_infra during weblogic domain creation

  1. Oracle DB (OracleXE Univ)
  2. Weblogic Server 10.3
  3. Repository Creation Utility for DB schema 11.1.1.2
  4. Soa Suite 11.1.1.2
  5. Jdeveloper 11.1.1.3
  6. Soa Extension (Oracle SOA Composite Editor)
  7. Weblogic domain creation (domain creation will fail for soa_infra stating a 11.1.1.3 version problem if you have used RCU 11.1.1.3)
  1. Soa Suite patchset installer for 11.1.1.3

Database

OraceXEUniv.exe http://download.oracle.com/otn/nt/oracle10g/xe/10201/OracleXEUniv.exe

Screenshots

WebLogic Server

wls1033_oepe111150_win32.exe

http://download.oracle.com/otn/nt/middleware/11g/wls1033_oepe111150_win32.exe

Screenshots

Repository Creation Utility

ofm_rcu_win32_11.1.1.3.3_disk1_1of1.zip

http://download.oracle.com/otn/nt/middleware/11g/ofm_rcu_win32_11.1.1.3.3_disk1_1of1.zip

Note:

If repository tool 11.1.1.3.3 is creating some kind of problem while creating DB schema then please use RCU of 11.1.1.2.1 [if you are using 11.1.1.2.1 then please refer to section X for the installation order]

ofm_rcu_win32_11.1.1.2.1_disk1_1of1.zip

http://download.oracle.com/otn/nt/middleware/11g/ofm_rcu_win32_11.1.1.2.1_disk1_1of1.zip

Screenshots

SOA Suite & Patch

You have to have Soa Suite 11.1.1.2.0 installed in your system before installing the 11.1.1.3.0 patchset installer

ofm_soa_generic_11.1.1.2.0_disk1_1of1.zip

http://download.oracle.com/otn/nt/middleware/11g/ofm_soa_generic_11.1.1.2.0_disk1_1of1.zip

ofm_soa_generic_11.1.1.3.0_disk1_1of1.zip(includes BPM)

http://download.oracle.com/otn/nt/middleware/11g/ofm_soa_generic_11.1.1.3.0_disk1_1of1.zip

Screenshots

JDeveloper

jdevstudio11113install.exe

http://download.oracle.com/otn/java/jdeveloper/11.1.1.3.0/jdevstudio11113install.exe

SOA Extension for JDeveloper

You can install the extensions directly from inside JDeveloper through the “Help -> Check for Updates” menu option which is the recommended way install extensions. If you can’t connect to the Internet from your JDeveloper, you can directly download JDeveloper extensions from this page, and point the Check for Updates wizard to the local file you have downloaded.

http://download.oracle.com/otn/java/jdeveloper/11.1.1.3.0/extensions/soa-jdev-extension.zip

Note: for other extensions please refer

http://www.oracle.com/ocom/groups/public/@otn/documents/webcontent/156082.xml#oracle.sca.modeler

Setting up the database

Run the following commands to increase the process limits (Only for Oracle XE)

sqlplus sys/welcome1@XE as sysdba
SQL> show parameter session
SQL> show parameter processes
SQL> alter system reset sessions scope=spfile sid='*';
SQL> alter system set processes=200 scope=spfile;
SQL> shutdown immediate
SQL> startup
SQL> show parameter session
SQL> show parameter processes

Weblogic Domain Creation

refer this link

Server URLS

The link for the Weblogic console

http://localhost:7001/console (login with weblogic/welcome1)

The link for the EM console

http://localhost:7001/em (login with weblogic/welcome1)

The link for the SOA worklist app

http://localhost:8001/integration/worklistapp

The link for B2B

http://localhost:8001/b2b

The link for BAM (must use IE browser)

http://localhost:9001/OracleBAM

Starting the servers

Go to the domain directory and type startWebLogic.cmd

D:\Oracle\Middleware\user_projects\domains\soa_infra_domain> startWebLogic.cmd

On the same command line press ctrl+c or goto the bin directory of the domain folder and type stopWebLogic.cmd

D:\Oracle\Middleware\user_projects\domains\soa_infra_domai\bin> stopWebLogic.cmd

D:\Oracle\Middleware\user_projects\domains\soa_infra_domain\bin> stopManagedWebLogic.cmd so_server1

Unable to deploy EJB: ejb_ob_engine_wls.jar from ejb_ob_engine_wls.jar


If your soa server is up but your soa_infra is down then search for the following error in
$DOMAIN_HOME\servers\soa_server1\logs\soa_server1.log

weblogic.application.ModuleException: Exception preparing module: EJBModule(ejb_ob_engine_wls.jar)

Unable to deploy EJB: ejb_ob_engine_wls.jar from ejb_ob_engine_wls.jar:

There are 1 nested errors:

java.io.IOException: JDT compilation error!
 FacadeFinderBean_4vacyo_FacadeFinderBeanImpl.java: The method getMBeanAttribute(String, String) is undefined for the type FacadeFinderBean_4vacyo_Intf
 FacadeFinderBean_4vacyo_FacadeFinderBeanImpl.java: The method getNumberOfCompositeInstancesByPartitions(String[]) is undefined for the type FacadeFinderBean_4vacyo_Intf
 FacadeFinderBean_4vacyo_FacadeFinderBeanImpl.java: The method listComposites() is undefined for the type FacadeFinderBean_4vacyo_Intf
 FacadeFinderBean_4vacyo_FacadeFinderBeanImpl.java: The method invokeMBeanOperation(String, String, String[], Object[]) is undefined for the type FacadeFinderBean_4vacyo_Intf
 FacadeFinderBean_4vacyo_FacadeFinderBeanImpl.java: The method setMBeanAttribute(String, String, Object) is undefined for the type FacadeFinderBean_4vacyo_Intf
 FacadeFinderBean_4vacyo_FacadeFinderBeanImpl.java: The method getNumberOfFaultedCompositeInstancesByPartitions(String[]) is undefined for the type FacadeFinderBean_4vacyo_Intf
 at weblogic.ejb.container.ejbc.CompilerForJDT.compile(CompilerForJDT.java:57)
 at weblogic.ejb.container.ejbc.EJBCompiler.doCompile(EJBCompiler.java:309)
 at weblogic.ejb.container.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:485)
 at weblogic.ejb.container.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:452)
 at weblogic.ejb.container.deployer.EJBDeployer.runEJBC(EJBDeployer.java:439)
 at weblogic.ejb.container.deployer.EJBDeployer.compileJar(EJBDeployer.java:779)
 at weblogic.ejb.container.deployer.EJBDeployer.compileIfNecessary(EJBDeployer.java:679)
 at weblogic.ejb.container.deployer.EJBDeployer.prepare(EJBDeployer.java:1237)
 at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:440)
.....
.....

Then install the SOA patchset installer (11.1.1.3) on top of your existing SOA suite 11.1.1.2

BINDING.JCA-12563 resolution


If you ever face issues like

BINDING.JCA-12563 Exception occurred when binding was invoked. Exception occurred during invocation of JCA binding: “JCA Binding execute of Reference operation ‘Write’ failed due to: Input Source null. Input Source null. Input Source is null. “. The invoked JCA adapter raised a resource exception. Please examine the above error message carefully to determine a resolution.
then there is a problem in the xml transformation in the mediator to write the file
Resolution:
Look if the transformation information in the mediator is proper.
Check if the transformation exist in the first place.

How to by pass some restricted access in Windows


Ever wonder how to get access to restricted application or options in windows.

Here in this post I am going to explain the utility provided by microsoft for administrators to enforce restrictions easily.

the utility is called  ‘gpedit.msc‘ means Group Policy Editor

what is Group Policy Editor?

The Group Policy Editor console is a graphical user interface(GUI) which allows admin to edit registry entries easily.Manually editing  registry entries is advisable and sometimes it will cause some unexpected problems.The gpedit.msc tool makes the administration of registry easier

There is another utility called ‘secpol.msc‘ which is similar to group policy which is used to edit subgroups

How to run Group Policy?

go to run  and type ‘gpedit.msc

Where all the information’s are stored?

All the information that is edited from group policy editor will affect registry editor directly.

The physical location of the modified files will resides in

%SystemRoot%\System32\GroupPolicy\

There are three folders to store information related to Admin, Machine and User related configurations

The Adm folder contains all the entries enforced on the system by the administrator and these entries directly maps to the windows registry

For example if you want to disable connection tab from internet Explorer you locate

Administrative Templates – Windows Component -> Internet Explorer -> Internet Control Panel

Click on ‘Disable the Connection page

Click ‘Enable’ and then press ok.

Now if you open Internet Explorer you will not see the connection tab in the Internet options page from Tools menu

The above mentioned is a simple example of how and why group policy is used. You can explore more options yourself to enforce/restrict user access

To more on the options Group Policy Settings download the respective excel spreadsheet for your windows operating system

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=18c90c80-8b0a-4906-a4f5-ff24cc2030fb&displaylang=en

Tips to get some space in your C: drive


Before doing these setting go to

Tools -> folder options -> View and under the Hidden Files and Folders

enable ‘Show hidden files and folders‘ and

un check ‘Hide protected operation System files[Recommended]

click ok for the popup

1 – Delete the unwanted user settings

Delete everything from

C:\Documents and Settings\[user name]\Application Data
C:\Documents and Settings\[user name]\Local Settings\Temp
C:\Documents and Settings\[user name]\Local Settings\Application Data
C:\Documents and Settings\[user name]\Local Settings\History
C:\Documents and Settings\[user name]\Local Settings\Temporary Internet Files

Don’t have any junk files in Desktop

repeat the above for all the users in the system

2 – Delete unwanted uninstall files[files starting with ‘$’] from

C:\WINDOWS
also
Empty C:\Temp (if it exists) and C:\Windows\Temp

3 – Delete from

C:\WINDOWS\SoftwareDistribution

4 – Delete from

C:\WINDOWS\system32\LogFiles

5 – uninstall unwanted programs from control panel and also from the program files[some files will be still residing inside program files even after the the application is uninstalled]

6 – Search for *.log files in C: and delete everything.. sometimes this will take some GB space

with all the above steps if you feel the performance and the space is not increased then try increasing the virtual memory or don’t have it

If the virtual memory is set then you will find two files in C:\hiberfil.sys and C:\pagefile.sys both will be having the size corresponding to the allocated memory size

to disable virtual memory

Right click ‘My Computer‘ -> got to ‘properties

Click the ‘Advanced Tab‘ in the System Properties window

In the Performance section, click the ‘Settings‘ button

Click on the ‘Advanced Tab‘ in Performance options window

In the Virtual Memory Section, click the ‘Change‘ button

Select the ‘No Paging file‘ option and click on ‘Set‘ button

This will ask for a restart of the machine

restart the machine and you will find some space in you C: for sure

JBO-27024: Failed to validate a row with key oracle.jbo.Key


How to defer the mandatory constraint?

The mandatory validation is a database constraint and you do not have any control over it in ADF. You will not have the validation execution tab for these kind of DB constraint validation if you want to defer it based on some condition.But the Error message can be overridden.

if you want to populate the key attribute for the child from the parent then enable “Composite Association -> Cascade Update Key Attributes” for the association

JBO-27024: Failed to validate a row with key oracle.jbo.Key usually occurs

1. Not providing value for a mandatory attribute.
2. Incorrect value for an attribute of different data type
3. any of your other validation rules failed.

the validation is failing because the id attribute may not be getting created properly. Because of this it could not validate the row as the id is null. row.validateEntity() will help to identify the error by calling it when you commit the record and check where exactly the error pops up.

4. when the primary key is not based on a sequence and depends on the composite. The solution is to create a surrogate key. If you want to override the db constraint you must have a surrogate key populated programmatic way every time a new row is created. So that the data is unique all the time and proceed with a customized error message for each attribute, make the surrogate key hidden and read only.

if you want to suppress the validation then use skipValidation=true in pageDef or have the immediate set to true.

Differentiate services and sid in connection string


This might be a basic information for some experts out there but I felt its worth mentioning it here

how will u differentiate between services and the SID to connect to Oracle using JDBC in the connection string

for SID: it goes like
jdbc:oracle:thin:@localhost:1521:XE

for Services you specify like
jdbc:oracle:thin:@localhost:1521/XE

 Class.forName("oracle.jdbc.driver.OracleDriver");
 conn =
 DriverManager.getConnection(jdbc:oracle:thin:@localhost:1521/XE,system,tiger);
 Statement stmt = conn.createStatement();
 ResultSet rset = stmt.executeQuery(query);