Deprecated: Assigning the return value of new by reference is deprecated in /home/pwsconsu/public_html/blog/inc/_main.inc.php on line 123

Deprecated: Assigning the return value of new by reference is deprecated in /home/pwsconsu/public_html/blog/inc/MODEL/generic/_genericelement.class.php on line 112

Deprecated: Assigning the return value of new by reference is deprecated in /home/pwsconsu/public_html/blog/inc/_blog_main.inc.php on line 306

Deprecated: Function ereg() is deprecated in /home/pwsconsu/public_html/blog/inc/_blog_main.inc.php on line 413

Deprecated: Assigning the return value of new by reference is deprecated in /home/pwsconsu/public_html/blog/plugins/code_highlight_plugin/_code_highlight.plugin.php on line 528
The South East Asia SOA Weblog - Archives for: 2010

Archives for: 2010

11/23/10

Permalink 10:16:36 am, by david Email , 41 words, 9408 views   English (US)
Categories: SOA Solutions in South East Asia

MySQL Support Costs Doubled

Just quickly in reference to my last blog entry… apparently Oracle doubled the support costs for MySQL a couple of weeks back and is now trying to explain and justify it: http://www.infoworld.com/t/applications/oracle-defends-mysql-support-pricing-changes-922

Rock on PostgreSQL!


Deprecated: Assigning the return value of new by reference is deprecated in /home/pwsconsu/public_html/blog/skins/_feedback.php on line 102
Permalink 01:07:53 am, by david Email , 611 words, 5592 views   English (US)
Categories: SOA Solutions in South East Asia

PostgreSQL... could have a good future

I had an interesting meeting today with a partner that is focused on PostgreSQL. I have always liked Postgres as a database and found it fairly easy to administer as well as pretty good performance. Interestingly the partner I met was telling me that he has seen a spike in his business since Sun bit the dust.

With the fallout from Oracle’s acquisition of Sun and the ensuing suit with Google over Android etc. it is no surprise that many industry watchers are very concerned about the well being of MySQL and what the future holds. With MySQL the obvious market gorilla in open source database one would have to assume that there is a fairly large proportion of their install base looking actively at alternatives and trying to make their way out of Larry Land before it is too late.

Whilst Postgres is licensed under it’s own open source license, the license itself is very flexible and unrestricted (similar to MIT and BSD). Personally I have a major problem with the way that MySQL has twisted its dual licensing scheme under GPL (they are not alone) and I am sure that many others share the same opinion. I am also quite certain that this is not something Larry will fix out the goodness of his heart but I would like to be proven wrong here.

I personally believe that the strong copyleft provided by the GPL was pivotal to the success of Linux and offers the developers the peace of mind that their work would benefit the whole world and remain free. Rather than this honorable outcome, we are now at a dubious crossroads where greedy corporates (out to make a quick buck at any cost) employ legal teams to pervert and exploit these contributions. This is really a sad situation for contributors to be in.

Another unfortunate trend is the corporates that exploit the spirit of GPL and open source to add some marketing punch to their offering with schemes like the dual licensing approach that really do misrepresent the intent of open source and free software. To me that is a very negative situation that creates a legal quagmire for those seeking to genuinely leverage open source and adopt a value-based approach to solutions by acquiring genuinely valuable support subscriptions from honest open source companies and their partners. The way the free software foundation portrays this is “organizations that are seduced into using non-free software". I agree and I think it is unscrupulous.

No matter which licensing scheme an open source company offers, there are many issues and legal considerations to contemplate now. It just should not be that way!!! For example it is now recognized that even the hallowed GPL has some flaws. So I guess with all the industry turmoil around open source and the unbending will of the FSF (love them, hate them or think they are full of extremists), one can only really admire their pursuit of freedom. Considering this you have to wonder why PostgreSQL has not gone with GPL by now. Personally (after watching the industry for 30 years and seeing the sheer will of people like Eric Raymond and Richard Stallman first hand) I am confident that the FSF will continue to improve and strengthen the GPL. I think it is probably worthwhile for PostgreSQL to now consider making a move.

In summary the world sorely needs a truly free enterprise RDBMS whilst many RDBMS users are exploited by either being “lured into non-free software” or forced to pay incredibly high costs for one of the lowest business value components in IT… and really folks… it could be PostgreSQL. Let us pray.


Deprecated: Assigning the return value of new by reference is deprecated in /home/pwsconsu/public_html/blog/skins/_feedback.php on line 102

09/23/10

Permalink 12:50:03 am, by david Email , 1662 words, 79471 views   English (US)
Categories: SOA Solutions in South East Asia

WebLogic 11g JMS Transport for WSO2 ESB - Definitive Configuration Guide

There are quite a number of posts around the place regarding this stack. None of the posts I found was successful or described a decent step by step method or guide for getting this done. Lately we have done quite a bit of work with WS-Eventing over HTTP(S) and found that protocol stack (at least on Axis) to be a little lacking in a number of areas (performance, stability, reliable delivery etc… actually most of the things you want out of a message transport). Ultimately this kind of drove us back to using JMS (due to it’s scalability, maturity, performance and reliability). We will be doing more work on WS-Eventing later and will keep you all updated regarding any new findings.

Our desire to use WSO2 as our ESB of choice (currently WSO2 ESB 3.0.0) has us making many choices and even some concessions currently but to me, using JMS as a transport is an obvious choice. We also have a strong background in WebLogic server and many of our customers also like WebLogic so that has essentially driven our choice of application server (at least in the interim). I am also particularly fond of the JMS server side implementation on WebLogic (that being said… the client leaves a lot to be desired). Whilst JMS is standardized, there is very poor documentation (and incorrect) on how to get a WebLogic JMS client confgiured that runs outside the JVM space of the server. On top of this, the documentation for configuring WSO2 ESB to use 3rd party JMS providers is also lean if not almost non-existent.

If you are not knowledgeable, experienced, tenacious, careful and detailed then doing this is probably not for you (maybe you can consider paying us to do it for you). Anyway… on with the steps….

1) The very first thing to do is to get rid of the existing geronimo JMS stack from WSO2. The reason for this is that it causes problems with the class loader. In our opinion Synapse (and WSO2) should get their act together with this. Any sane enterprise architect should realize that an ESB should be able to support multiple JMS providers easily… mv CARBON_HOME/repository/plugins/geronimo-jms_1.1_spec-1.1.0.wso2v1.jar ./temp

2) Next you will need to drop a few of the WLS jars into the classpath of the WSO2 server in the CARBON_HOME/lib/endorsed directory… these come from the WLS_HOME/server/lib directory of the server… wlclient.jar, wljmsclient.jar, wlthint3client.jar… be aware that there are several bad posts around the place on this. It took quite a bit of time, jar searching and debugging to get this right.

3) Set up the connection factories you intend to use in WebLogic (see another guide for this). It is pretty simple. Just go to the admin console and open services/messaging then add a JMS server, followed by a JMS module (targeting the server to which you want to deploy of course). You then should add the connection factories you wish to use (for the example below that would be “esbConnectionFactory” wih a JNDI name of “/jms/esbConnectionFactory".

4) We are only going to cover message consumption by a service here so best to use a topic for this unless you want to have a whole lot of serial processing going on in the ESB. Note that the topic (AKA transport.jms.Destination) is not specified below. This will be proxy service specific. Go ahead and add the topic into the JMSModule you just created and target it to an appropriate subdeployment (many alternatives for this depending on how you want to structure your messaging). For example just create a topic named “customerInfoTopic” with a JNDI name of “/jms/customerInfoTopic” in a subdeployment of “WSO2″.

5) Next you want to configure the JMS Transport Receiver in the CARBON_HOME/repository/conf/axis2.xml as follows.

Code:

<transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
        <parameter name="myTopicConnectionFactory" locked="false">
          <parameter name="java.naming.factory.initial" locked="false">weblogic.jndi.WLInitialContextFactory</parameter>
          <parameter name="java.naming.provider.url" locked="false">t3://localhost:7101</parameter>
          <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">/jms/esbConnectionFactory</parameter>
    <parameter name="transport.jms.ConnectionFactoryType" locked="false">topic</parameter>
    <parameter name="transport.jms.UserName" locked="false">weblogic</parameter>
    <parameter name="transport.jms.Password" locked="false">weblogic1</parameter>
        </parameter>
 
        <parameter name="myQueueConnectionFactory" locked="false">
          <parameter name="java.naming.factory.initial" locked="false">weblogic.jndi.WLInitialContextFactory</parameter>
          <parameter name="java.naming.provider.url" locked="false">t3://localhost:7101</parameter>
          <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">/jms/esbConnectionFactory</parameter>
    <parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
    <parameter name="transport.jms.UserName" locked="false">weblogic</parameter>
    <parameter name="transport.jms.Password" locked="false">weblogic1</parameter>
        </parameter>
 
        <parameter name="default" locked="false">
          <parameter name="java.naming.factory.initial" locked="false">weblogic.jndi.WLInitialContextFactory</parameter>
          <parameter name="java.naming.provider.url" locked="false">t3://localhost:7101</parameter>
          <parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">/jms/esbConnectionFactory</parameter>
    <parameter name="transport.jms.ConnectionFactoryType" locked="false">queue</parameter>
    <parameter name="transport.jms.UserName" locked="false">weblogic</parameter>
    <parameter name="transport.jms.Password" locked="false">weblogic1</parameter>
        </parameter>
    </transportReceiver>

6) This step is critical. When the WebLogic JMS classes load, somehow behind the scene the java security manager is invoked. WSO2 requires a JMX connection back to the JVM and thus will now need permissions for this. Add the following to JAVA_HOME/jre/lib/security/java.policy for the JVM that loads WSO2:

Code:

grant {
// JMX Java Management eXtensions to support WLS JMS in WSO2
permission javax.management.MBeanTrustPermission "register";
};

7) At this point you should be able to start the ESB. Verify that there are no CNF or other exceptions etc. You will no doubt see some WARN’s like:

Code:

[2010-09-22 16:34:30,297]  WARN - JMSListener Unable to configure the service StockOrderProxy for the JMS transport: Service doesn't have configuration information for transport customerInfoQueueCF. This service is being marked as faulty and will not be available over the JMS transport.
[2010-09-22 16:34:30,298]  WARN - JMSListener Disabling the customerInfoQueueCF transport for the service StockOrderProxy, because it is not configured properly for the service
[2010-09-22 16:34:30,299]  WARN - JMSListener Unable to configure the service WSDLValidatorService for the JMS transport: Service doesn't have configuration information for transport jms. This service is being marked as faulty and will not be available over the JMS transport.

8) You may also notice that a number of ERROR’s occur when trying to lookup JNDI names that do not exist such as dynamicQueues/wso2carbon-sts etc. This is because WLS does not allow dynamic queue creation and the JMS transport has been added to all of the system services by default when added. This is kinf o adesign oversight by the WSO2 or Synapse team… anyway, you now have to fix this or put up with the errors (Daves rule… ALWAYS FIX IT)

9) Assuming the ESB starts then you can log into the admin console. What you have to do not is disengage the JMS transport from the existing proxy services that you do not wish to configure for JMS. This can be done through the admin console Services/List/echo etc. and then on the Transports menu. Simply remove the transport for each of them. This will become more intuitive over time when you use the ESB more.

10) You can now configure an ESB proxy service to use the new JMS transport and route the incoming message to a servlet (that we have already deployed of course). We will configure a proxy service named “JMSServletProxy” for this purpose. The easiest way to do this is through the Service Bus/Source View menu as follows:

Code:

<proxy name="JMSServletProxy" transports="jms http https" startOnLoad="true" trace="enable">
        <target>
            <endpoint name="endpoint_urn_uuid_6DAF8B66EB1F59CE805670013077601-492331472">
                <address uri="http://localhost:7101/pathway/testservlet"/>
            </endpoint>
            <inSequence>
                <property name="OUT_ONLY" value="true"/>
            </inSequence>
            <outSequence>
                <send/>
            </outSequence>
        </target>
        <parameter name="transport.jms.Destination">/jms/customerInfoTopic</parameter>
        <parameter name="transport.jms.ConnectionFactoryType">topic</parameter>
    </proxy>

As you can see above we did the following (A) Defined the transports as jms, http and https (just for the hell of it… would could just use jms). (B) We defined OUT_ONLY in the in sequence to make this a one way message (otherwise the ESB will try to send a response to the caller… not required for our config). © We defined a simple out sequence with /send to send the message to the end point (D) We defined a servlet URL as the end point (note that the urn_uuid is generated for us). (E) We defined the remaining two parameters for the JMS transport connection (the jms.transport.Destination and the jms.transport.ConnectionFactoryType).

11) Test and enjoy.

Any issues, questions or comments will be happily answered in this blog. Merry integration!

Oh ya… watch this space for our new EAI adapter framework. This framework is the result of 100’s of hours of development and many years of experience in integration. It is designed to work with multiple transports and multiple ESB’s including WSO2. PathWay is an easy way to conquer the complex challenge of custom enterprise applications adapters in J2EE. We may even decide to release PathWay in an open source model… stay tuned via RSS


Deprecated: Assigning the return value of new by reference is deprecated in /home/pwsconsu/public_html/blog/skins/_feedback.php on line 102

09/16/10

Permalink 10:45:20 pm, by david Email , 1065 words, 18140 views   English (US)
Categories: SOA Solutions in South East Asia

Oracle vs Google on Java... Overblown?

After considering some of the posts I have read around the place and some of the real issues at hand in the suit Oracle has started against Google regarding alleged infringements on Java patents/copyright etc. with Android one has to ask themselves whether the whole thing is being blown out of proportion by the community and exploited by Larry bashers (the industry has seen an age of Larry bashing… Bill is off the scene now so Larry is one of few pre-internet dinosaurs left). The situation also begs the question as to whether Sun was poised to launch exactly the same action at this juncture. Considering some of the comments in articles and links I have read (written by people such as James Gosling and Jonathan Schwartz) as well as considering Suns prior suit against Microsoft for infringements related to Java (they were awarded 1.6 billion in restitution I believe) it should be clear that Sun was probably in a position to move this action forward and that they had potentially used this as a basis for added value in the deal with Oracle. Afterall… let’s consider Suns desperate situation a mounting debt. Desperation tends to erode traditional values like a cancer.

From Oracle’s perspective you could hardly blame them for wanting to get some quick return on investment for their 7.4 billion as quickly as possible. Simplistically I would suspect that the additional first year top line revenues of around 1.6Bn, plus the 2.6Bn in cash and a healthy settlement from Google (presumably around 2Bn given the case history with MSFT) would really make the acquisition a no-brainer for Oracle.

In regard to the actual infringements in question, none of that is clear at present but what does seem evident is that this is not a normal OEM case in that Google have built a virtual machine that appears to process Java byte codes in way that may be infringing Oracle (formerly Sun) patents and copyright. It is pretty obvious that Google will be trying to drum up as much community sympathy as possible to find their way out of this and at least soften Oracle up for a settlement. Whether that sympathy is warranted is very questionable.

There are many posts around the place that discuss ‘ethics’ in the same sentence as large American corporations. To me this is kind of stupid as none of them ever seem to survive well when acting ethically and practically none of them act ethically in everyone’s definition. Oracle has always suffered from an image problem that stems from the approach the leadership there takes toward people. Maybe they would be better off longer term to try and change that a little. Sun was a very different company and perceived as community minded by many. Look where that got them!! It’s not like the community jumped in to save them when the going got tough now is it… These and other factors are probably some of the reasons why people seem to have a major problem with anything Larry does. When you look at trying to mix a culture like Sun’s with a culture like Oracle’s, it is something akin to trying to mix oil and water (an endeavor that one of our other loved behemoths has been trying in the Gulf for a while now). As for Google, their history as a darling startup has long passed. In my eyes they are just another big corporation that is hungry for profits as any other and probably just as ethical as the next corporation.

It is a risky proposition at best in making any distinction between any of these mega-corporations. From a personal standpoint I think it is a fundamental error in judgment. At the end of the day they are all very large corporations that for the most part have no tangible interest in furthering the cause of humanity, people or anything/anyone else other than earnings and share holders.

So really… who gives a shit if Oracle or Google wins or loses. It isn’t going to make any difference to my life and nobody is ever going to ask me to pay for a JVM. If they do then they will be disappointed as I will probably just use the open source JVM as it is licensed under the GPL (as Sun… now Oracle made it that way). Java is a cool programming language, it always will be as it was modeled using many lessons learned from many languages preceding it (maybe there are a few IP infringements in there too… Larry has plenty of money so give it a try). In respect to Java there are few (almost none) viable alternatives that have anywhere near the base of libraries Java has currently. Java has always been proprietary and always been licensed like most other languages in use today. It seems again we have to choose between two evils for enterprise development… anyone remember the COM vs CORBA or browser wars? How does IBM stay out of these conflicts and still make money?

From a practically engineering perspective I just don’t see the difference whether Oracle, Sun or any other large company owns Java or any other language. I have been in the IT industry for 28 years. I have used many languages in that time including Fortran, Basic, Pascal, C, CPP, Eiffel, Java, TCL and a bit of PHP to name but a few. Some of them survive for a while but others die. SOme of them are more open than others. ALL OF THEM WITHOUT EXCEPTION have embraced or copied concepts from one another at some point in time.

IMHO Oracle vs Google is another example of a society gone mad. Next thing you know somebody will be suing the world for patent infringements in the use of iteration. In summary… I think this suit and many coming before it are overblown results of an overly litigious society that is sick with greed for money and power. It really doesn’t have any impact on the future of Java as a language or any of the J2EE and contributor licensees as long as they play by the rules. I think Java will be around as a language for a long time to come. Don’t be foolish and try to dump it just because Larry owns it.

Who wins? Who loses? For gods sake… who cares?


Deprecated: Assigning the return value of new by reference is deprecated in /home/pwsconsu/public_html/blog/skins/_feedback.php on line 102

07/02/10

Permalink 03:53:22 pm, by david Email , 329 words, 7008 views   English (US)
Categories: SOA Solutions in South East Asia

Android Development... why or why not?

I have been doing a little research on Android development lately. Not so much because of the mere cool factor but more so the obvious potential for Android to become the OEM platform of choice for mobile. Looking back at some of the key reasons why x86 PC’s and DOS prevailed back in the 80’s and even why Java has gained such wide acceptance in the enterprise through the 90’s and 2000’s, we can glean some possible insight into what fosters strong adoption in the user community. To me it comes down to a few key factors:

o User interface acceptance, abilities and “coolness”
o Availability of key/killer applications for the platform.
o Ease of Development and SDK (leading to availability of key applications.
o Portability across multi-vendor OEM hardware platform.
o Strong support from developers and the OEM market.

Looking at the overall smartphone market which is arguably led by RIM at around 40% (depending on whose numbers you look at and excluding Nokia/Symbian which is number 1 if you take every handset ever sold into account) it seems that the market kind of resembles the minicomputer market of the 1970’s in terms of overall market development, standardization and proprietary platform domination. It should be interesting to see how this all plays out. Taking a closer look at Android…

1) It seems just as cool as any of the other smartphone UI’s out there… including iPhone
2) There is a burgeoning market for applications already after less than a year in the market.
3) Development seems pretty straigtforw3ard to me… I was up, coding, debugging and running on Eclipse in no time.
4) It is built on a Linux/Java base… what could be more portable?

I am not one for predictions so I won’t indulge in that but nonetheless it does seem that Android has a bright future and could gain a significant share of the smartphone OS market through OEM’s over the coming two or three years. Let’s see.


Deprecated: Assigning the return value of new by reference is deprecated in /home/pwsconsu/public_html/blog/skins/_feedback.php on line 102

05/29/10

Permalink 07:41:47 pm, by david Email , 920 words, 11454 views   English (US)
Categories: SOA Solutions in South East Asia

Adapting to SOA Architecture Using WS-Eventing

SOA standards have long been maturing and as of the last few years we now have a fairly complete suite of interoperable standards to work with in the web services world other than a few minor vendor nuances. One of these standards is the WS-Eventing standard (http://www.w3.org/Submission/WS-Eventing/) which leverages other key SOA standards such as SOAP 1.1 SOAP 1.2 and WSDL 1.1 among others.

Building an applications integration framework is still a steep challenge as SOA standards, tools and frameworks have not yet matured to the same extent as the preceding generation of integration solutions loosely falling under the EAI (Enterprise Applications Integration Banner). That being said there is still hope.

The WS-Eventing standard provides the SOA platform with key messaging capabilities similar to the way that JMS and other messaging frameworks provided those capabilities for the previous generation of EAI style integration components. The basic principles of WS-Eventing are in fact very similar to JMS but of course operate at application level and inter-operate nicely with other SOA standards. As with the other SOA protocols, the transport for WS-Eventing may be implemented across multiple underlying technologies such as HTTP and JMS. In my opinion this is one of the innate strengths of the web services stack as it allows applications to route messages at application level across multi-vendor environments thus freeing the application from vendor specific integration.

In this article I will outline the basics of the required components. In later articles I will provide detailed guidance regarding how to create an application-to-application integration infrastructure using WS-Eventing and SOA web services.

Application Integration Componentry: When implementing applications integration there are a few necessary types of component that normally comprise a strong architecture:

The Common Bus or Hub
The Application Adapter
The Common Schematic View
The Application Schematic View
Message Transformers

The common Bus or Hub: normally incorporates facilities such as transport, security, routing, common schema definition, common transformation, logging and other features. The modern SOA incarnation of this is of course the ESB. The quintessential difference between the modern ESB and previous message brokers and hubs is that it supports the use of key SOA web services standards and is built to accommodate the needs of a service oriented architecture.

The Application Adapter: is usually delivered as a pre-built component and possibly an API which provides developers a way of integrating data and transactions vertically to applications. Typically the applications adapter provides two major interfaces, the inbound interface and the outbound interface. The inbound interface handles any messages (transactions & data) bound for the application. The outbound interface “senses” any changes in the data within an application and publishes outgoing messages to the bus or hub to notify other applications that an application event has occurred. Typically it is the role of the adapter to transform the format of outbound messages from the application schematic view to the common schematic view and inbound messages from the common schematic view to the application schematic view. A good example of such a standard is/was JCA. Many JCA adapters exist today and many of the current generatio9n of applications adapters also support SOAP based interfaces. The great weakness in most of today’s applications adapters is lack of support for WS-Eventing which relegates the use of such adapters to northbound integration with older technology and over-complicates matters.

Presently the suites of SOA standards do not provide a standard for applications adapters in the same way that J2EE provided JCA.

The Common Schematic View: is usually defined within the context of the central bus or hub and provides a schema to which all applications adapters should conform when sending and receiving messages. Typically this schema is implemented with XML documents. Older implementations use XML DTD but most modern implementations use XML XSD.

The Application Schematic View: is defined within the context of an application. It provides a transformed schema that supports the way in which data should be represented within specific applications. Like the common schematic view this is usually defined with XSD.

Message Transformers: provide the components and logic to transform messages from one format to another. With XML messages this is typically accomplished using XSLT. Of course the broad requirements of integration usually also dictate that non-XML messages be handled therefore message transformers may exist to handle transformation to and from any specific formats (usually to and from the XML representation or from one XML representation to another). An example of a message format that is becoming popular is REST (representation state transfer) which uses an internal schema based on JSON data types. An emerging common application requirement is transformation between JSON and XML.

The Current SOA Technology Situation…

The current situation is that no standards exist that cover all of the aforementioned components and address the end to end framework required for implementing EAI-style integration using SOA technology. That being said, WS_Eventing does provide a very neat transport mechanism for outbound applications adapters to publish events to and ESB. Our favorite ESB right now is WSO2 ESB which provides a full implementation of the WS-Eventing specification with the ability to route, transform and manage subscriptions in a durable manner. We are in the process of developing a framework and API that delivers applications adapters and transformations that leverages WS-Eventing.

Watch this space…
Over the coming weeks we will be releasing an application adapter framework based on WS-Eventing that can be used with any ESB or server infrastructure that supports WS-Eventing and SOAP. Watch this space.


Deprecated: Assigning the return value of new by reference is deprecated in /home/pwsconsu/public_html/blog/skins/_feedback.php on line 102

05/28/10

Permalink 01:26:53 pm, by david Email , 527 words, 47631 views   English (US)
Categories: SOA Solutions in South East Asia

Correct Installation Procedure for WSO2 ESB on Oracle 10G Release 2

Most of the blogs and comments I have found around the place with this issue are either out of date or just do not work at all. I managed to find some time to get this going because we were having issues with WSO2 ESB 3.0 deadlocking on the H2 database. Please bear in mind that we are yet to fully test this configuration but at least the ESB starts up and functions normally.

Most of the documented problems and solutions were centric to getting the JDBC side of things configured correctly but none of the comments I viewed were correct. The environment I am using is Oracle 10g release 2 on RHEL with WSO2 ESB 3.0. This should also work with 11g Database.

To get the JDBC issue resolved and get ESB up and running I ended up doing exactly as follows:

1) Set up the account for wso2carbon in Oracle and grant it resource

Code:

grant connect to wso2carbon identified by wso2carbon;
grant resource to wso2carbon;

One of the blog entries I saw said to grant dba… that is an absolute sledge hammer approach. Even granting resource is too much. Any decent DBA will reduce the privileges to an absolute minimum required for run time.

2) Run the wso2esb-3.0.0/dbscripts/oracle.sql script in sqlplus or any other tool using the newly created wso2carbon account of course

Optionally now revoke resource privilege from the esb user to secure the DB

3) Copy the $ORACLE_HOME/jdbc/lib/ojdbc14.jar into the wso2esb-3.0.0/lib/endorsed directory

Many of the other comments around the place say to copy all the drivers from $ORACLE_HOME/jdbc/lib but this is wrong if you intend to user the thin driver. Also it must be copied into the lib/endorsed directory otherwise the JVM permissions will prevent it from being loaded and driver class instances from being created correctly

4) Configure the driver specs in the /wso2esb-3.0.0/repository/conf/usr-mgmt.xml and /wso2esb-3.0.0/repository/conf/registry.xml under the Configuration entry to:

Code:

[Property name="url"]jdbc:oracle:thin:@localhost:1521/orcl[\/Property]
            <Property name="userName">wso2carbon</Property>
            <Property name="password">wso2carbon</Property>
            <Property name="driverName">oracle.jdbc.driver.OracleDriver<\/Property>

make sure you add all the colons and use the exact url specification or you will get weird errors like “No suitable driver found"… that can take time to debug or find

5) Next you should then run the ESB using the shell script or batch file to start it… it should start if you have followed the above instructions meticulously.

NOTE: We are yet to fully test this configuration. The reason we migrated to this configuration is that we have several end points and several proxys within the WSO2 ESB for one of the solutions we are building and the ESB was dropping end points from the configuration due to deadlock problems with the default H2 database… at least that is our assessment. We reverted the solution to WSO2 ESB 2.1 and will upgrade to 3.0 again once (hopefully) these problems are resolved and we are fully tested.


Deprecated: Assigning the return value of new by reference is deprecated in /home/pwsconsu/public_html/blog/skins/_feedback.php on line 102

02/12/10

Permalink 09:42:38 am, by david Email , 368 words, 3075 views   English (US)
Categories: SOA Solutions in South East Asia

Amberpoint.... gone

My company has been an Amberpoint partner for a couple of years. We have been committed to this product set for SOA Governance for a while now. Disappointingly, Oracle has just announced that they will acquire Amberpoint. As usual Oracle are upbeat about this but you have to start wondering how healthy this is for the IT industry as a whole as the resultant industry after all these acquisitions fundamentally offers customers and systems integrators far less choice regarding the business relationships they need in order to deploy the solution sets they desire. There is also a far broader issue regards the stifling innovation in our industry.

I put it to you and Oracle that smaller, focused and more agile companies like Amberpoint are able to specialize and innovate faster. Behemoths such as Oracle, IBM and HP find it far more difficult to innovate outside their traditional areas of core expertise as they are just not tuned into investing time and resources that way. There is only one beneficiary for this type of acquisition and that is the company making the acquisition. I am convinced that it is not good for customers, integrators or the industry as a whole. Most of the products aquired by the these companies just stagnate after the acquisition (I could cite many many examples of this including most of the 60 odd companies Oracle has acquired over the past 5 years).

Acquisitions of this nature are simply opportunistic, funded with debt and aimed at make rich companies more powerful; and controlling thus disadvantaging the smaller players. This won’t be the first time a corporate software company acquisition has cost me dearly (the other two were NetBeans and Star Office… which incidentally are both now owned by Oracle after the Sun acquisition). Oracle’s web site has a letter for Partners. Unfortunately it only talks about Oracle partners (http://www.oracle.com/amberpoint/partner-letter.html) and does not mention anything about the existing Amberpoint partners which I think is a little careless of them (characteristically).

It appears that the center of innovation in the IT industry at present seems to be the open source companies. Let’s hope that trend continues and isn’t stifled in the same way.


Deprecated: Assigning the return value of new by reference is deprecated in /home/pwsconsu/public_html/blog/skins/_feedback.php on line 102

Hosted by:
hosted by PWS Consulting

The South East Asia SOA Weblog

The intention of this blog is to collect thoughts on the issues, paradigms, process, vendors, solutions, project and any other item related service oriented architecture in South East Asia.


Deprecated: Assigning the return value of new by reference is deprecated in /home/pwsconsu/public_html/blog/plugins/_calendar.plugin.php on line 135
2010
 << Current>>
Jan Feb Mar Apr
May Jun Jul Aug
Sep Oct Nov Dec

Search


Deprecated: Assigning the return value of new by reference is deprecated in /home/pwsconsu/public_html/blog/skins/_linkblog.php on line 46

XML Feeds

What is RSS?

Who's Online?

  • Guest Users: 301