Wednesday 16 December 2009

List of oracle Table Names and Rows

I was looking for ways of displaying table names and number of rows it hold. It took me a lot of time to figure out how this can be done. After nearly completing my script, I found a better script than the one I created and want to share it with you.

You can find the full script @List of oracle Table Names and Rows

Tuesday 1 December 2009

Export oracle METADATA_ONLY

steps
1. create dump directory (CREATE DIRECTORY metadata_export AS '/opt/app/oracle';
2. make sure the directory has got read and write permssion
3. create shell script as follows
4. schedule the script to run

#!/bin/sh
. envfile.env
$ORACLE_HOME/bin/expdp \"/ as sysdba\" SCHEMAS=shcema1, schema2, schema3 content='METADATA_ONLY' directory=met
adata_export NOLOGFILE=Y dumpfile=metadata_export:metadata.dmp compression=metadata_only

Tuesday 24 November 2009

Invoking oracle ESB API through http protocol

If you want to see the service status of esb in one xml file you can invoke oracle esb API through http protocol. For instance you can use http://hostname:port/esb/esbConfiguration/executeCommand?action=ExploreServices to list all your esb services and statuses in one xml document

This is documented very well @ One of soa blog

Monday 16 November 2009

Monday 19 October 2009

nice -n 19 rm -rf directory

nice -n 19 rm -rf directory

this command will allow you to run a rm if your directory has got many files. It will run with lowest priority.

Friday 2 October 2009

Wednesday 30 September 2009

Oracle BPEL Process Manager Performance Tuning

A good starting point on how to tune Oracle BPEL Process Manager Performance Tuning
Oracle BPEL Process Manager Performance Tuning

Tuesday 22 September 2009

crs commands

Oracle RAC Administration - Part 2: CRS commands. Nice article on RAC admin.
crs commands

Tuesday 15 September 2009

Creating database link

I always tend to get this one wrong. It is simple. The following can be used to create a database link

CREATE DATABASE LINK name_of_link CONNECT TO username IDENTIFIED BY userpassowrd USING 'database_sid'

Saturday 29 August 2009

Gettinng started with Oracle SOA 11 G

Getting started with oracle SOA 11G. Five things you need to get started with Oracle SOA Suite 11G

1. Oracle WebLogic server 11G R1
2. Oracle SOA suite 11g R1
3. Oracle Repository Creation Utility 11g R1
4. Oracle JDeveloper 11g R1
5. Documentation (oracle documentation)
and probably when Getting Started With Oracle SOA Suite 11g R1 – A Hands-On Tutorial books come out it may be helpful. Not sure what the content will be but it seems that it is offering a hands-on tutorial which may or may not be good

Oracle SOA 11G

I came accross this article on the launch of Oracle SOA suite 11G. This article is written by Alex Neihaus who probably happens to work for ActiveVOS who is a primary compititor of oracle SOA suite. I am a bit surprised for somebody who has not worked with the product to come up with this. For full details of this person verdict on Oracle SOA you can find it @On the software runway, Oracle 11g can’t quite pull it off

Friday 14 August 2009

What sid is blocking what

To find out what sid is blocking which sid you can use this query.

select b1.sid, ' IS BLOCKING ', b2.sid
from v$lock b1, v$lock b2
where b1.block =1 and b2.request > 0
and b1.id1=b2.id1
and b1.id2=b2.id2

Wednesday 5 August 2009

Schedule Email Notification using Oracle BPEL

Very good step by step of how to schedule email notification using oracle BPEL can be found Schedule Email Notification using Oracle BPEL

Friday 24 July 2009

ESB CONTROL TAKES LONG

Recently I have experienced that esb control taking to long to display services. Oracle has confirmed this as a bug when you have got a lot of BPEL process and you can get around this by adding a LazyLoad parameter to esb_config.ini file.

This has been reported by oracle as a bug 7720420

Adding the esb.console.services.lazyLoad.Allowed=true property to $OARCLE_HOME/integration/esb/config/esb_config.ini and restarting the services fixed the issue.

Friday 10 July 2009

Oracle fusion middleware components and architecture

Oracle fusion middleware architecture overview

Oracle fusion middleware components

Singleton adapters issues in HA

Recently I  faced with the issue of Singleton (non-concurrent) adapters in HA (clustered environment). Two instances were created for a single file that resulted in a file will be processed twice.

Singleton adapters can not run in active-active configuration. For this type of adapters you must make sure there is only one adapter instance active at runtime independent of the number of clusters you have. This effectively means you will only have one non-concurrent adapter at runtime. If this active adapter fails, one of the passive adapter becomes active.

There are a lot resources in metalink that you will be able to use. I have listed some of them below.

  • How to Enable a Singleton Adapter in an ESB Cluster Environment
  • How to Enable a Singleton Adapter in BPEL Cluster Environment
  • How to Setup FileAdapter in Cluster for High Availability
    and more can be found on metalink.
  • Wednesday 8 July 2009

    Oracle Fusion Middleware 11gR1 Software Downloads

    All Oracle Fusion Middleware 11gR1 Software Downloads can be found at Oracle Fusion Middleware 11gR1

    Tuesday 7 July 2009

    Delete single or multiple esb instance

    From time to time you may need to delete stale esb instances. I had difficulty in finding a script that does it. But actually you can use oracle provided purge scripts and modify to be used only for single or multiple instance deletion. See scripts below it will delete single esb instance

    DELETE FROM ESB_ACTIVITY
    WHERE ID IN
    (SELECT ID
    FROM ESB_ACTIVITY A
    WHERE EXISTS
    (SELECT FLOW_ID
    FROM ESB_ACTIVITY B
    WHERE Flow_id = 'instance Id'
    AND A.FLOW_ID = B.FLOW_ID));



    DELETE ESB_TRACKING_FIELD_VALUE
    WHERE ACTIVITY_ID IN
    (SELECT ID
    FROM ESB_ACTIVITY A
    WHERE EXISTS
    (SELECT FLOW_ID
    FROM ESB_ACTIVITY B
    WHERE Flow_id = 'instance Id'
    AND A.FLOW_ID = B.FLOW_ID));

    --

    DELETE FROM ESB_FAULTED_INSTANCE
    WHERE ACTIVITY_ID IN
    (SELECT ID
    FROM ESB_ACTIVITY A
    WHERE EXISTS
    (SELECT FLOW_ID
    FROM ESB_ACTIVITY B
    WHERE Flow_id = 'instance Id'
    AND A.FLOW_ID = B.FLOW_ID));

    --

    DELETE FROM ESB_TRANSACTION_STATUS
    where Flow_id = 'instance Id'

    --

    DELETE FROM ESB_INSTANCE_RELATION_XML
    WHERE FLOW_ID IN
    (SELECT FLOW_ID
    FROM ESB_ACTIVITY A
    WHERE EXISTS
    (SELECT FLOW_ID
    FROM ESB_ACTIVITY B
    WHERE Flow_id = 'instance Id'
    AND A.FLOW_ID = B.FLOW_ID));

    --

    DELETE FROM ESB_RELATION_XML A
    WHERE NOT EXISTS
    (SELECT RELATION_XML_ID
    FROM ESB_INSTANCE_RELATION_XML);

    --

    DELETE ESB_SERVICE_RELATION
    WHERE RELATION_XML_ID IN
    (SELECT ID
    FROM ESB_RELATION_XML
    WHERE NOT EXISTS
    (SELECT RELATION_XML_ID
    FROM ESB_INSTANCE_RELATION_XML
    WHERE ID = RELATION_XML_ID));

    commit;

    Compare Weblogic and Oracle Application Server

    Few not long list but will help in understanding SOA on application server and weblogic. To find more click this blog Compare Weblogic and Oracle Application Server

    FEATURE MATRIX

    A useful comparison of feature matrix of oracle weblogic server standard edition 11g, oracle weblogic server enterprise edition 11g and oracle weblogic suite 11g can be found at FEATURE MATRIX.
    On one of the line Oracle Application Server: for customers running existing environments on this application server, complete access and use rights to oracle weblogic suite 11g. Does this mean it is possible to upgrade to weblogic 11g from apps server 11 g ? again wait and see.

    Monday 6 July 2009

    Understand hidden parms for corruption recovery

    Burleson explains that many Oracle DBA staff are not aware of special hidden parameters that allow you to open a corrupt database

    These parameters allow you to ignore corrupt data blocks when your database is corrupted. These should only be used in emergencies. The following are direct copy from his post.

    _allow_resetlogs_corruption - This parameter may be the only way to start a db backed-up open without setting backup on tablespaces, it will result in an unsupported system.

    _corrupted_rollback_segments - The only way to start up with corrupted public rollback segments. This undocumented parameter can be used without fear of invalidating support.

    _allow_read_only_corruption - This parameter allows the database to be opened even if it has corruption. This should only be used to export as much data from a corrupted database as is possible before re-creating a database. A database that has been opened in this manner should not be used in a normal manner, as it will not be supported.

    _corrupt_blocks_on_stuck_recovery – This parameter can sometimes be useful for getting a corrupted database started. However, it probably won't be supported if done without Oracle's blessing. Immediately export the tables needed and rebuild the database if used.

    Friday 3 July 2009

    Oracle Fusion Middleware 11g conference

    The launch of oracle fusion middleware 11G was held on july 2nd 2009 in Hilton London Paddington.

    Keynote :
    Charles Philips, President, Oralce
    Thomas Kurian, Senior vice president, Oracle Development.
    The main components discussed were
    - Oracle SOA suite 11G
    - Oracle WebCenter suite 11G
    - Oracle WebLogic Suite 11G
    - Oracle Identity management
    - Oracle Fusion middleware for various sectors.

    The conference was exciting and there were no much marketing. My expectation was that as it always been the morning session normally have a lot of marketing than substance but in this occasion it was all about the product.

    Some of eye catching stuff that I have come accross are:
  • Weblogic server --> this has brought a lot of question to my mind. Are those who are on Application server 10 will be able to upgrade with no extra cost.It was vague and will still remain like that until the time come when oracle decides. It seems that oracle have put a lot of money and time on getting this product right. You wouldn't know what the issues will be until you actually use it but from what I have seen it is a wonderful product.

  • Oracle JRocket real time :

    Oracle claims that JRockit Real Time is the industry’s fastest real-time solution for standard Java and the only one with average microsecond response performance. It guarantees a five nines maximum garbage collection latency on the order of one millisecond. JRockit uses deterministic garbage collections . Oracle datasheet also claims that JRocket can help you in predicting latency and extreme performance, zero coding when you swap JVM and advanced monitoring tools.

    Oracle WebLogic Real Time is also the version of Oracle JRockit Real Time offered exclusively with Oracle WebLogic Suite. JRockit seems to run on unix like (Liunx) platforms and windows (both 32 and 64 bits)

  • New Jdeveloper :

    Looks very promising. It reminds me of when Microsoft launched .Net framework. Oracle have revamped this products with many added features. To just mention few ability to use any source control, collaboration with your colleagues , assigning tasks, drag and drop capability is highly improved. There are more to it than mentioned her.

  • SOA suite 11 : it will run on weblogic server 11 and it looks like it is going to stay that way.

  • Application grid is also mentioned which again could improve application performance.

    Last but not least the lunch was fantastic. For those who stayed behind there was also drinks (cool !!!!!!!!!)
  • Friday 26 June 2009

    ESB, BPEL using Oracle SOA Suite : articles

    ESB, BPEL using Oracle SOA Suite : articles is published by Apps fusion and it has 4 series. The articles are mainly based on oracle soa suite 10.1.3.3. I found it very useful both for beginner and advanced users.
    Getting Comfortable with Oracle SOA Suite : part I
    Database Adapters : part II
    File And FTP Adapters
    BPEL Process Activities

    Thursday 25 June 2009

    v$views

    A good collection of v$views and brief description of what they do can be found at René Nyffenegger's collection of things @Oracle's V$ Views.

    Tuesday 23 June 2009

    Is port in use

    Linux command to check if the port is in use
    netstat -nape | grep

    Concurrent program and time

    I use the following sql statement to check concurrent program and time that it took to run. It will give you an overview of how long a program takes and results can be exported to excel for further analysis.

    select
    u.user_name username,
    user_concurrent_queue_name QName,
    cp2.user_concurrent_program_name programName,
    --cp.concurrent_program_name short,
    to_char(cr.actual_start_date,'DD-Mon-YYYY HH24:MI:SS') started,
    to_char(cr.actual_completion_date,'DD-Mon-YYYY HH24:MI:SS') Completed,
    round((nvl(cr.actual_completion_date,sysdate)-cr.actual_start_date)*1440,1)
    ttl_rtime,
    request_id ,
    decode(status_code,'E','Err','T','Term','G','Warn','C','Normal','R','Normal','W','Pending',status_code)
    scode
    from fnd_application a,
    fnd_concurrent_programs_tl cp2,
    fnd_concurrent_programs cp,
    fnd_user u,
    fnd_concurrent_requests cr,
    fnd_concurrent_queues_tl cq,
    fnd_concurrent_processes cpr
    where a.application_id = cp.application_id
    and cp.concurrent_program_id = cr.concurrent_program_id
    and cp2.concurrent_program_id = cr.concurrent_program_id
    and u.user_id = cr.requested_by
    and cq.concurrent_queue_id = cpr.concurrent_queue_id
    and cr.controlling_manager = cpr.concurrent_process_id
    --and status_code in ('E','G')
    --and cp.concurrent_program_name <> 'FNDRSSUB'
    --and cr.actual_completion_date>sysdate - 1
    --AND TO_NUMBER(TO_CHAR(actual_start_date, 'HH24')) between 4 and 6
    --AND to_char(actual_start_date, 'DD-MON-YY') = '23-JUN-09'
    AND round((nvl(cr.actual_completion_date,sysdate)-cr.actual_start_date)*1440,1) > 10
    order by cr.actual_start_date DESC ;

    Wednesday 17 June 2009

    Global replace command

    From time to time I replace some oc4j-ra.xml files during soa cloning and changes. I found :%s/nametofind/nametoreplace/g command very useful.

    Friday 12 June 2009

    Date and time difference in oracle

    This is the topic I never mastered but in searching for date and time difference function I have across this which I wanted to share with you.

    How does one get the time difference between two date columns?

    It is much easier to do the same thing in SQL Server as compared to oracle though.

    Wednesday 11 March 2009

    Oracle Configuration Best Practices

    A good reference for Oracle Configuration Best Practices. It covers
    Configuration Best Practices for the Database, Configuration Best Practices for Real Application Clusters, Configuration Best Practices for Data Guard, Configuration Best Practices for MAA , Recommendations for Backup and Recovery and Recommendations for Fast Application Failover. If you want to read click more

    Monday 9 March 2009

    SOA magazine

    More on SOA. Some good technical articles. Nice to bookmark this site SOA magazine

    SOA Best Practices : BPEL cookbook

    I find this a very good place to start looking at oracle soa best practices. SOA best practices : BPEL cookbook. It will discuss all aspects of soa starting from Service-Oriented Integration, Building Modern Applications and SOA Techniques.The area that interested me more is Managing a BPEL Production Environment
    Learn how to automate common admin tasks in a BPEL production environment using BPEL Process Manager's API and Dehydration Store by Stany Blanvalet, BPEL and J2EE consultant

    BPEL process on wait activity

    From time to time BPEL process on wait activity is more than what you expected it to be. It wasn't easy to get an answer for this. The wait activity sometimes is beyond your belief. There isn't good recommendation or what have caused this to happen anywhere. But, I have seen a post by expert consulting block BPEL process wait activity which is worth trying out.

    Friday 27 February 2009

    Query to monitor BPEL processes.

    The following query can be used to monitor BPEL processes.

    select count(1), RTRIM(process_id),
    case state when 0 then 'intiated'
    when 1 then 'open and running'
    when 2 then 'open and suspended'
    when 3 then 'open and faulted'
    when 4 then 'closed and pending'
    when 5 then 'closed and completed'
    when 6 then 'closed and faulted'
    when 7 then 'closed and canceled'
    when 8 then 'closed and aborted'
    when 9 then 'closed and stale'

    else 'unknown' end as status
    from ORABPEL.CUBE_INSTANCE
    where trunc(creation_date) >= :B1 and state <> 5
    group by process_id, state

    CUBE_INSTANCE state column

    Recently, I have started using soa and want to get stat on all processes with different state. I have started looking at ways of getting this data from dehydration store but there seems to be no much info on the columns of CUBE_INSTANCE. I was interested in the process name and state.

    I came across the following values for state and want to share with you.
    0 --> initiated
    1 --> open and running
    2 --> open and suspended
    3 --> open and faulted
    4 --> closed and pending
    5 --> closed and completed
    6 --> closed and faulted
    7 --> closed and canceled
    8 --> closed and aborted
    9 --> closed and stale

    Instances created in ESB Console

    Instances created in ESB Console not showing up.

    I have seen a situation where an instances created is not showing in esb console. At the first instance I thought something was wrong with esb. After further investigation, nothing broke as all the BPEL processes which is invoked by esb are all completed with out error.

    By default the open_cursor parameter is set to 300. If you have got many processes, this can be exceeded and that was the problem and was able to fix by increasing this database parameter.

    Wednesday 18 February 2009

    Long running Operations in Oracle

    From time to time you want to monitor long running queries in oracle. I have recently given a task of purging dehydration database and wanted to find out how far much of the work has been done. I came across dynamic performance view v$session_longops. For me a simple query something like :javascript:void(0)

    select round( SOFAR/TOTALWORK * 100,2) ||'% completed' from v$session_longops where sid = 487

    produced the result I needed. But there is much more you can do with this view. TIME_REMAINING is very interesting column as it will give you an estimated time remaining for the query to be completed.

    Wednesday 4 February 2009

    Oracle SOA Suite High Availability

    If you are using Oracle SOA for business critial integaration, oracle have posted various resources on Oracle SOA suite high availability.

    To view resources click Oracle SOA high availability