Wednesday, December 30, 2009


My points on Websphere Message Broker

http://docs.google.com/present/edit?id=0AVqRcA4NAu8bZGc5MmJqc18xNmNiaDZtYzg3&hl=en


WebSphere Message Broker (WMB) is IBM's information broker from the WebSphere product family that allows business information to flow between disparate applications across multiple hardware and software platforms. Business rules can be applied to the data flowing through the message broker to route and transform the information. The product can be considered to be an Enterprise Service Bus providing connectivity between disparate applications.
The WebSphere Message Broker Toolkit enables developers to graphically design message flows and related artifacts. Once developed, these resources can be packaged into a broker archive (BAR) file and deployed into the runtime environment. At this point, the broker is able to continually process messages according to the logic described by the message flow.WebSphere Message Broker flows can be used in a Service Oriented Architecture, and if properly designed by Middleware Analysts, integrated into event-driven SOA schemas, sometimes referred to as SOA 2.0.

Broker nodes available

developer can choose from many pre-designed broker nodes. Nodes have different purposes. Some nodes map data from one format to another (for instance, Cobol or PL/I Copybook to canonical XML). Other nodes evaluate content of data and route the flow differently based on certain criteria.
Node types
There are many types of node that can be used in developing message flows; the following node transformation technology options are available:
  • Extended Structured Query Language (ESQL)
  • Graphical Message Mapping
  • eXtensible Stylesheet Language Transformations (XSLT)
  • JavaCompute (as of version 6)
  • WebSphere Transformation Extender (formerly known as Ascential DataStage TX, DataStage TX and Mercator Integration Broker) is available as a separate licensing option
  • PhpCompute (as of version 6.1.0.3)
Creating a broker in Windows
 \Program Files\IBM\MQSI\6.1\bin>mqsiprofile


\Program Files\IBM\MQSI\6.1\bin>mqsicreatebroker   -i < user Name > -a  -q -s < User server Queue Manager > -n < Database Instance >


Ex:










D:\Program Files\IBM\MQSI\6.1\bin>mqsicreatebroker WBRK_BROKER -i mohanrao -a qwer*098 -q WBRK_QM -s WBRK_UNS_QM -n DEFBKD61





Creating Configure Manager In Windows 


\Program Files\IBM\MQSI\6.1\bin>mqsicreateconfigmgr CONF_MGR -i mohanrao -a qwer*098 -q QM_evolvus_lap


Start the Component
\Program Files\IBM\MQSI\6.1\bin>mqsistart CONF_MGR


\Program Files\IBM\MQSI\6.1\bin>mqsicreateaclentry CONF_MGR -f \myList


Creating Queue
runmqsc ----------it will start a session for given  Queue Manger
  DEFINE qlocal ()


Some of  the Major Calls for MQ
MQCONN- to connect the Queue 
MQCONNX-it will connect and also open the Queue
MQDISC- to Define A description about the Queue
MQOPEN- To Open the Connected Queue
MQCLOSE - To Close The Opened Queue
MQPUT- To insert/place the message in to the Opened Queue

MQGET - To retrieve the Message From The Opened Queue
MQBEGIN- To start the transaction  Opened  Queue
MQCMIT- To Commit the started transaction


Command Line Deployment 

mqsideploy -b -e -bar
name>



Example Java Classes For MQ


1) 










import com.ibm.mq.*;


public class Put {
public static void main (String args[]) throws Exception 
{
MQQueueManager qm = new MQQueueManager("QM");
MQQueue queue = new MQQueue(qm,"AQ",MQC.MQOO_OUTPUT,"","",""); 
MQMessage msg = new MQMessage();
msg.writeString(args[0]);

queue.put(msg);
queue.close();
qm.disconnect();

}
}



2)




import com.ibm.mq.*;


public class Get{
public static void main (String args[]) throws Exception
{
MQQueueManager qm = new MQQueueManager("QM");
MQQueue queue = new MQQueue(qm,"LQ",MQC.MQOO_INPUT_SHARED,"","","");

MQMessage msg = new MQMessage();

queue.get(msg);


System.out.println(msg.readString( msg.getMessageLength() ));


//queue.close();
//qm.disconnect();

}
}
Find The Following Documents

  1. http://docs.google.com/fileview?id=0B1qRcA4NAu8bZWFmNTM5NGMtMTRkMC00ODk2LThiOTItNzY1NzU5MDBjZTJi&hl=en
  2. http://docs.google.com/fileview?id=0B1qRcA4NAu8bMDU0NzAxNjUtYWEwYS00NGZlLTk2MjgtYjE0ZDZhNTkzOTZk&hl=en
  3. http://docs.google.com/fileview?id=0B1qRcA4NAu8bOGExOGUzNTQtZjllOS00ZWIyLWJlODktNGViOWY3NDgwMjQx&hl=en
  4. http://docs.google.com/fileview?id=0B1qRcA4NAu8bNjFlZjc2YmEtMTRkZS00ZDdlLTgzYWEtNjBkODIwYWFhZjky&hl=en
  5. http://docs.google.com/fileview?id=0B1qRcA4NAu8bY2JmYWNjMGUtNjg0Yi00NzBhLTg4NDUtNGI1ODc0OTE2NGRh&hl=en
  6. http://docs.google.com/fileview?id=0B1qRcA4NAu8bZTY4OTg2MmEtNDBiNy00MTQwLTlkODMtZWNhZWVhZmI4ODE3&hl=en
  7. http://docs.google.com/fileview?id=0B1qRcA4NAu8bY2E1MjA2ZGQtOGE0OC00N2ZiLTk0MDMtNTJiOGI5OTcyZGJk&hl=en
  8. http://docs.google.com/fileview?id=0B1qRcA4NAu8bMmY3N2FhMjEtYmU2Ni00YTBkLTgzNTktMjRjNjQ2OGE3NWU2&hl=en
  9. http://docs.google.com/fileview?id=0B1qRcA4NAu8bYjEwN2M2ZjEtMDU1OC00ZWZlLWIzZGYtZDUzMThkMTU4Mjk0&hl=en
  10. http://docs.google.com/fileview?id=0B1qRcA4NAu8bNTEwZDU0MGUtY2JhOC00Yjc5LWE5ZDMtYTUxYTRiNTBmM2U3&hl=en
  11. http://docs.google.com/fileview?id=0B1qRcA4NAu8bNWVjYmNiYzktOWRjNi00ZjE1LTg1OTMtZjQ0NGZmMGUyNjVl&hl=en
  12. http://docs.google.com/fileview?id=0B1qRcA4NAu8bZTY3ZThkOGEtNDVkZi00YWRhLTkyYjAtMzgzZTg5M2M4ZjM5&hl=en
  13. http://docs.google.com/fileview?id=0B1qRcA4NAu8bY2I1YjVhZTItOTRiYS00NWRiLWI5NjctN2UzZGRjMmQ3ZDll&hl=en
  14. http://docs.google.com/fileview?id=0B1qRcA4NAu8bZTcxZTkxMjMtMDZhNy00NjgyLTlkODAtMjkyOTNiMjU5Y2Jm&hl=en






Thursday, December 10, 2009

Creating Database Connection Pool in Tomcat 5.0 and Tomcat 5.5 for MySQL and Java




This tutorial gives you a close look at Jakarta Commons Database Connection Pool (DBCP) in Tomcat 5.0 and Tomcat 5.5. DBCP is the database connection pooling technology built into the popular open-source Tomcat servlet engine. Because it’s included with Tomcat, you don’t need to download or install any files or libraries.
However, depending on which database you are connecting to, you will have to download the appropriate JDBC driver. In this example we are connecting to MySQL. Normally, to deploy an application to the Tomcat servlet engine, you just copy the application’s WAR file, or deployment directory, to the Tomcat webapps directory. However, to configure DBCP for your application, you need to do a bit more work: you need to add the application to the Tomcat server configuration file conf/server.xml.
To do this, you need to add a new entry to the Tomcat server.xml file. Open the server.xml file with your favorite editor and look for the Tomcat Root Context. You need to add the entry in the correct part of the server.xml file. For example, you can add it after the ROOT context and before the examples context, as in the snippet shown here:
 
 
 
 
 
 
factory 
 
 
org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory 
 
maxActive100
maxWait100 
usernamescott
passwordtiger
 
driverClassName 
org.gjt.mm.mysql.Driver 
 
 
url 
jdbc:mysql://localhost:3306/mydb?autoReconnect=true 
 
 
 
 

reloadable="true" crossContext="true"> 

prefix="localhost_examples_log." suffix=".txt" timestamp="true"/>

The preceding example shows how to configure DBCP for an application called myapp. The first entry inside the element is the declaration. The declaration declares a javax.sql.DataSource and binds it to the JNDI name jdbc/mydb. The element and the nested elements within specify the DBCP parameters for the application’s database connection pool. We’ve already discussed the maxActive and maxWait parameters. The driverClassName and url parameters are standard JDBC connection parameters. 
Note The value for the factory parameter will vary based on the Tomcat distribution. Tomcat 5.0 and earlier versions used the Jakarta Commons DBCP library. Starting with Tomcat 5.5, the DBCP library has been changed from the Commons version to a Tomcat-specific library. If you want to double check that the value you use is correct, check the Tomcat JAR files in Tomcat’s common\lib directory, find the BasicDataSourceFactory class, and use the fully qualified class name of the class you find.
The next code excerpt shows how to obtain a connection from the previous connection pool. First, you use JNDI to look up a javax.sql.DataSource interface, and then you ask that interface for a connection. When you’ve finished with the connection, you close it and return it to the pool for reuse. Closing the connection doesn’t actually close the underlying physical connection; it just returns the connection to the pool.
javax.naming.InitialContext context = new InitialContext(); 
// Look up the data source 
javax.sql.DataSource dataSource = 
(javax.sql.DataSource)context.lookup ("java:comp/env/jdbc/mydb"); 
// Get a connection from the pool 
java.sql.Connection conn = dataSource.getConnection(); 
// ...Use the connection... 
// Close the connection to return it to the pool 
conn.close()