25 Mayıs 2009 Pazartesi

log dosya boyutunu ayarlama

1.  Logon to your server and navigate to directory BPEL_HOME/domains/<domain name>/config.
2. Make a backup copy of the log4j-config.xml file.
3. Open the log4j-config.xml file for edit.
4. Change the appender class from com.collaxa.cube.util.CXRollingFileAppender to org.apache.log4j.RollingFileAppender.
5. Add the property MaxFileSize:
<param value="10MB" name="MaxFileSize" />
Here, a maximum file size of 10MB is specified, but you can make it whatever value suits your environment. The top of the log4j-config.xml file now looks like:
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender class="org.apache.log4j.RollingFileAppender" name="A1">
<param value="true" name="ImmediateFlush" />
<param value="false" name="Append" />
<param value="D:/soa/product/10.1.3.1/as_1/bpel/domains/default/logs/domain.log" name="File" /> <param value="10MB" name="MaxFileSize" />
<param value="10" name="MaxBackupIndex" />
6. Save the file, and restart the BPEL container.
Please note that these changes will be carried forward to any new domain that you create. If you have already created domains in addition to default, you will need to change the log4j-config.xml file for each of these domains to limit the size of those log files.

22 Mayıs 2009 Cuma

BPEL RAC configuration

Does BPEL PM support RAC DB? What versions of Oracle DB are supported?
A: Yes, RAC is supported for the BPEL PM dehydration store and for the DB and AQ adapters. Any version or Oracle 9i or 10g would work. We would recommend a RAC configuration of 10g if someone wants high availability, however. To configure BPEL PM 2.1.2 and 10.1.2 with RAC, use the following instructions:

for BPEL PM 2.1.2 and 10.1.2 just configure DataSource (orabpel\system\appserver\oc4j\j2ee\home\config\data-sources.xml) like this:

Name: BPELServerDataSource
Class: com.evermind.sql.DriverManagerDataSource
URL: jdbc:oracle:thin:@(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dwebvip01)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = dwebvip02)(PORT = 1521))
(LOAD_BALANCE = yes)
(CONNECT_DATA=(SERVER = DEDICATED)(SERVICE_NAME = asdb)))
Driver: oracle.jdbc.OracleDriver
Location: jdbc/BPELServerDataSource
XA location: BPELServerDataSource
EJB location: jdbc/BPELServerDataSource
inactivity-timeout: 300
retry interval: 2
max-connect-attempts: 60
max conn: 60
min conn: 12
For 10g RAC and implicit connection caching (jdbc 10g R1), all the following are valid ULRS:

Valid Usage:
url="jdbc:oracle:oci:@TNS_ALIAS"

url="jdbc:oracle:oci:@(DESCRIPTION=
(LOAD_BALANCE=on)
(ADDRESS=(PROTOCOL=TCP)(HOST=host1) (PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=host2)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=service_name)))"

url="jdbc:oracle:oci:@(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=cluster_alias) (PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=service_name)))"

url = "jdbc:oracle:thin@//host:port/service_name"

url = "jdbc:oracle:thin@//cluster-alias:port/service_name"

url="jdbc:oracle:thin:@(DESCRIPTION=
(LOAD_BALANCE=on)
(ADDRESS=(PROTOCOL=TCP)(HOST=host1) (PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=host2)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=service_name)))"

url = "jdbc:oracle:thin:@(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=cluster_alias) (PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=service_name)))"

Invalid Usage:
url = "jdbc:oracle:thin@host:port:SID"

The BPEL PM DB and AQ adapters have been certified with 32-bit RAC configuration as well and certification was occurring as of 4/25/2005 for 64-bit RAC.

14 Mayıs 2009 Perşembe

Cluster Poll fazla instance problemi

clusterda aynı veritabanına birden fazla makine aynı database e poll yaptığı için fazla instance oluşmasını engellemek için

1-poll ayarlarında

Polling frequency,database rows per transaction çok fazla olmasa daha iyi olur

2-her makinede deploy ettiğin projenin klasörüne gidip ....toplink-mappings.xml dosyasında

<toplink:lock-mode>lock</toplink:lock-mode>

şeklinde değiştirmelisiniz

bununla ilgili metalinkteki yazı
https://metalink2.oracle.com/metalink/plsql/f?p=130:14:9276466641169054146::::p14_database_id,p14_docid,p14_show_header,p14_show_help,p14_black_frame,p14_font:NOT,733967.1,1,1,1,helvetica

Configuring jgroups-protocol.xml using TCP instead of UDP



When configuring multicast for an Oracle SOA Suite 10g (10.1.3.3) cluster, there are two sets of multicast addresses that are required; one for the Oracle Application Server and a completely separate one for BPEL Process Manager. This is to allow BPEL Process Manager to manage active/passive adapter state as well as propagate process deployment notifications in the cluster.

The TCP settings in jgroups-protocol.xml are designed for clustering across subnets, and Oracle seems to generally recommend using multicast otherwise. Unfortunately, the Enterprise Deployment Guide (10.1.3.3) does not describe how to configure TCP-based clustering for BPEL Process Manager.

When to use TCP for BPEL Process Manager Clustering

You should you use node-to-node (TCP) instead of multicast (UDP) when configuring a BPEL Process Manager cluster if a combination of the conditions below apply:

- You cannot configure multicast.
- Your BPEL Process Manager servers communicate across subnets.
- You have a very large number of nodes in your cluster.
- Performance of UDP is slow in your environment.

Configuring TCP-based clustering for BPEL Process Manager

Perform the following on all BPEL Process Manager servers in your cluster.

1. Comment out the UDP multicast configuration in jgroups-protocol.xml:
    <--
    <config>
    <UDP mcast_send_buf_size="32000"
    .
    .
    .
    </config>
    -->

2. Uncomment the TCP configuration in jgroups-protocol.xml and update the initial_hosts attribute with the hostnames in your node-to-node cluster, as well as the port you want to use (7900 in the example below):
    <config>
    <TCP start_port="7900" loopback="true" send_buf_size="32000" recv_buf_size="64000"/>
    <TCPPING timeout="3000" initial_hosts="
    server1[7900],server2[7900]" port_range="3" num_initial_members="3"/>
    .
    .
    .

The configured port should be identical across all servers.

3. Restart OPMN.

If configured correctly, the log file SOA_GROUP~OC4J_SOA~SOA_GROUP~1.log should show it working with entries similar to:
    INFO: server socket created on 192.168.28.210:7900
    GMS: address is 192.168.28.210:7900
    INFO: created socket to 192.168.28.207:7900
    INFO: created socket to 192.168.28.210:7900

The log entries below shows the result of having incorrectly configured different ports:
    WARNING: discarded message from different group "server2:8880" (our group is "server1:7777"). Sender was192.168.28.207:7900
    WARNING: discarded message from different group "server2:8880" (our group is "server1:7777"). Sender was192.168.28.207:7900

Good luck.


7 Mayıs 2009 Perşembe

Deployment klasörünü değiştirme

ORACLE_HOME/opmn/conf/opmn.xml dosyasını açıp

<variable id="TMP" value="/tmp">


değerini değiştirerek dha fazla alanı olan başka bir yer gösterebilirsin

4 Mayıs 2009 Pazartesi

Deploy depending BPEL processes



When designing and developing BPEL processes. It could result that process A call proccess B. But process B will also call process A. During development your start with process A, deploy it and later on you create process B. Then you add a partnerlink in process A to call B and vice versa.

You will not notice that these two processes are depending on each other until you create/deploy these processes in a new environment. It will not possible to deploy process A, while it depends on B. In the bpel.xml file process A will be compiled, but it will try to retrieve WSDL specification of B. While B is not there, it fails to compile. The other way arround, is the same. Process B does not compile because A does not exists.

This can be solved. The way I prefer is the following:

  • Copy the WSDL file and the XSD file of process B into your project of process A.
  • Copy bpel.xml into bpel_post.xml
  • Change all the WSDL locations, in bpel.xml, into local files: http://host/orabpel/default/HelloWorldB/HellowWorldB?wsdl
    into
    HelloWorldB.wsdl
  • Compile process A based on bpel.xml.
  • Deploy process A.
  • Deploy process B.
  • Compile process A based on bpel_post.xml.
  • Deploy process A.
Issue solved.