Friday, December 11, 2009

Tips: Installing WebLogic in Production mode

I got some errors when trying to start my brand new weblogic domain in production mode, so I checked oracle documentation to get some guidance. Without success, I searched oracle otn forum when finally I got the fix for my problem. Below are some steps you need to follow before trying to start your domain and after domain creation.

1) Create RDMS Tables: Run the script in your WLS_SERVER_HOME/server/lib/rdbms_security_store_oracle.sql , if you are using other database than oracle, choose the script appropriate to your db.
details: http://download.oracle.com/docs/cd/E12840_01/wls/docs103/secmanage/rdbms.html#wp1105241

2) When using Oracle XE database, you need to run the following statements below:
ALTER SYSTEM SET PROCESSES=200 SCOPE=SPFILE;
ALTER SYSTEM SET SHARED_SERVERS=10 SCOPE=SPFILE;
ALTER SYSTEM SET SESSIONS=150 SCOPE=SPFILE;
*change the number of shared servers according to the number of wls nodes you have. if you have admin and one node than you should set it to at least 6. The count should be 3 units per node.

3) Start AdminServer: go to DOMAIN_HOME/bin -> startWebLogic.cmd
4) Start Node 1: startManagedWebLogic.cmd "nodeName" "AdminServerAddress" -> e.g.: startManagedWebLogic.cmd "mng1" "http://localhost:8001"

That's all! Your domain should start.

Monday, June 1, 2009

SOA: Canonical Data Model - Introduction - Part 1

In mathematics the word canonical refers to concepts that have a kind of uniqueness or naturalness. Maybe that explains the use of this word to designed objects that represent unique business entities. In EAI (Enterprise Application Integration) a canonical model is used to avoid high numbers of message translators between systems.

In the figure below we have systems talking directly to each other, as you can see the arrows indicate a request or a response, in each request the requestor needs to compose the request message to a format that the target system accepts as is input, in other words a transformation is required. In the response phase the same is true. When a system changes his service contract all systems that call this service needs to be changed to accommodate the new changes to the service contract.

[Figure 1]


Note in the next picture [Figure 2] the ESB mediating all communications between the systems. But using an ESB doesn’t mean that you must use a Canonical Data Model, still you can have multiple services contracts using the same elements as input or output. Let’s imagine that for all mobile phones we now have a new attribute, then we need to go throw all service contracts that aggregates information about mobiles and we need to refactor these service contracts to include this new attribute.

If instead we use a Canonical Data Model, we just need to include in the canonical object that represents the mobile and include this new attribute. Therefore all service contracts that use this canonical object will now contain our new attribute.


[Figure 2]


Many SOA projects identified the need to use a canonical model; in the internet you can find a lot of articles telling you the reasons of why you should use a canonical model, but very few will tell you exactly how you can do this. Using a CDM is not easy task and there is no best or unique way of doing it. There is also an initiative from Open Applications Group to define canonical data models for some business verticals, like Financial Services, Automotive services, and so on. See more on this link http://xml.gov/documents/completed/oagi/oagis.htm .

In my next post I’ll describe the steps to identify and implement a Canonical Data Model.