Hai every body, This is vikram,I am having doubt in cmp entity bean.. I am using weblogic server5.0,backend is oracle8.0... Please Help me how to make connection to database through cmp entity bean.. What are the steps needed to execute...? And also i don't now how to make connection pool, Please Help me in this ... Awaiting for this Reply Bye from vikram
Mahesh Kulkarni
Ranch Hand
Joined: Jul 05, 2001
Posts: 62
posted
0
Hi there, You have to create pool like this by setting properties file. Then in weblogic-rdbms-jar.xml you have to set the pool name as given below. This works for weblogic 5.1 and oracle 8i. weblogic.jdbc.connectionPool.demoPool=\ url=jdbc racle:thin:@SERVER:1521:ORACLE,\ driver=oracle.jdbc.driver.OracleDriver,\ loginDelaySecs=1,\ initialCapacity=4,\ maxCapacity=50,\ capacityIncrement=2,\ allowShrinking=true,\ shrinkPeriodMins=15,\ refreshMinutes=10,\ testTable=dual,\ props=user=scott;password=tiger weblogic.jdbc.TXDataSource.weblogic.jdbc.jts.demoPool=demoPool # # Add an ACL for the connection pool: weblogic.allow.reserve.weblogic.jdbc.connectionPool.demoPool=everyone Pool name setting in weblogic-rdbms-jar.xml <pool-name>scmsPool</pool-name> I hope this will solve your problem. Thanx Mahesh
Mahesh Kulkarni
Ranch Hand
Joined: Jul 05, 2001
Posts: 62
posted
0
Hi there, You have to create pool like this by setting properties file. Then in weblogic-rdbms-jar.xml you have to set the pool name as given below. This works for weblogic 5.1 and oracle 8i. weblogic.jdbc.connectionPool.demoPool=\ url=jdbc racle:thin:@SERVER:1521:ORACLE,\ driver=oracle.jdbc.driver.OracleDriver,\ loginDelaySecs=1,\ initialCapacity=4,\ maxCapacity=50,\ capacityIncrement=2,\ allowShrinking=true,\ shrinkPeriodMins=15,\ refreshMinutes=10,\ testTable=dual,\ props=user=scott;password=tiger weblogic.jdbc.TXDataSource.weblogic.jdbc.jts.demoPool=demoPool # # Add an ACL for the connection pool: weblogic.allow.reserve.weblogic.jdbc.connectionPool.demoPool=everyone Pool name setting in weblogic-rdbms-jar.xml <pool-name>demoPool</pool-name> I hope this will solve your problem. Thanx Mahesh
sandeep rane
Greenhorn
Joined: Jun 29, 2001
Posts: 5
posted
0
hi vikram For making the jdbc connectivity with cmp with weblogic server just follow the following steps... 1) In your weblogic.properties file search for WEBLOGIC DEMO CONNECTION POOL PROPERTIES here you have to make settings.
weblogic.jdbc.connectionPool.demoPool=\ url=jdbcdbc:sandeep,\ driver=sun.jdbc.odbc.JdbcOdbcDriver,\ initialCapacity=1,\ maxCapacity=2,\ capacityIncrement=1,\ props=user=scott;password=tiger;server=orcl # Add a TXDataSource for the connection pool: weblogic.jdbc.TXDataSource.weblogic.jdbc.jts.demoPool=demoPool # # Add an ACL for the connection pool: weblogic.allow.reserve.weblogic.jdbc.connectionPool.demoPool=everyone
after this save the file.
Then in the deployer after adding all the files you just click on presistance. There you create the relational database. There to generate the relational database. you follow the follow the following steps. You will get fields there. Click on only those container managed fields which you want them to represent them as relational database. After that click trhe checkbox weblogic rdbms persistance 5.1.0 You will get three tabed panes. first will be configuration. there you give table name which is there in your database. then give pool name as demoPool. if any other pool u r creating then give that one.But note that it is case sensitive. second tabbed pane is field-column map . this imp. step here give the column field names from your table. third tabbed pane is finders. there you write wlql query. then save it. then generate the container and then deploy the bean. It will work fine. good luck sandeep rane ------------------
vikram veera
Ranch Hand
Joined: Dec 26, 2000
Posts: 43
posted
0
hai sandeep & mahesh, Thanks for sending reply... I done as your guides... I set connection pool & deploy the bean in weblogic perfectly... My connection pool look like this.. weblogic.jdbc.connectionPool.demoPool=\ url=jdbc dbc:sample,\ driver=sun.jdbc.odbc.JdbcOdbcDriver,\ initialCapacity=1,\ maxCapacity=2,\ capacityIncrement=1,\ props=user=scott;password=tiger;server=none # Add a TXDataSource for the connection pool: weblogic.jdbc.TXDataSource.weblogic.jdbc.jts.demoPool=demoPool # # Add an ACL for the connection pool: weblogic.allow.reserve.weblogic.jdbc.connectionPool.demoPool=everyone
But i have a problem while running a client it through an exception As given below javax.ejb.EJBException at weblogic.rmi.extensions.AbstractRequest.sendReceive(AbstractRequest.java:76) at ProductBeanHomeImpl_WLStub.create(ProductBeanHomeImpl_WLStub.java:184) at ProductBeanHomeImpl_ServiceStub.create(Compiled Code) at Client.main(Compiled Code) Destroying products.. please help me in the problem what i have to do next.....
My code is given below Product.java ------------- import javax.ejb.*; import java.rmi.RemoteException; public interface Product extends EJBObject { // Getter/setter methods for Entity Bean fields public String getName() throws RemoteException; public void setName(String name) throws RemoteException;
public String getDescription() throws RemoteException; public void setDescription(String description) throws RemoteException; public double getBasePrice() throws RemoteException; public void setBasePrice(double price) throws RemoteException;
public class ProductBean implements EntityBean { protected EntityContext ctx; // Container-managed state fields. Note that they must // be public. public String productID;// PK public String name; public String description; public double basePrice; public ProductBean() { System.out.println("New Product Entity Bean Java Object created by EJB Container."); } // // Business Logic Methods // // Simple getter/setter methods of Entity Bean fields. public String getName() throws RemoteException { System.out.println("getName() called."); return name; }
public String productID; public ProductPK(String productID) { this.productID = productID; } public ProductPK() { } public String toString() { return productID.toString(); } } Client.java ============= //package com.wiley.compBooks.roman.entity.product; import javax.ejb.*; import javax.naming.*; import java.rmi.*; import java.io.*; import java.util.Enumeration; import java.util.*; /** * Client test application on a Container-Managed Entity Bean, Product. */ public class Client { public static void main(String[] args) { ProductHome home = null; try { Properties props= new Properties(); props.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory"); Context ctx=new InitialContext(props); home = (ProductHome) ctx.lookup("ProductHome"); home.create("123-456-7890", "P5-350", "350MhzPentium", 200); home.create("123-456-7891", "P5-400", "400MhzPentium", 300); home.create("123-456-7892", "P5-450", "450MhzPentium", 400); home.create("123-456-7893", "SD-64", "64MBSDRAM", 50); home.create("123-456-7894", "SD-128", "128MBSDRAM", 100); home.create("123-456-7895", "SD-256", "256MBSDRAM", 200); /* * Find a Product, and print out it's description */ Enumeration enum = home.findByName("SD-64"); System.out.println("The following product descriptions match the product name SD-64:"); while (enum.hasMoreElements()) { Product prod = (Product) enum.nextElement(); System.out.println(prod.getDescription()); } System.out.println("Calling finder to find all products that cost $200"); enum = home.findByBasePrice(200); while (enum.hasMoreElements()) { Product prod = (Product) enum.nextElement(); System.out.println(prod.getDescription()); } } catch (Exception e) { e.printStackTrace(); } finally { if (home != null) { try { System.out.println("Destroying products..");
/* * Find all the products */ Enumeration enum = home.findAllProducts(); while (enum.hasMoreElements()) { try { Product prod = (Product) enum.nextElement(); if (prod.getProductID().startsWith("123")) { prod.remove(); } } catch (Exception e) { e.printStackTrace(); } } } catch (Exception e) { e.printStackTrace(); } } } } } Finder script syntax look like this... (=name $name) (=description $description) (=basePrice $basePrice) (>basePrice $minPrice) (<basePrice $minPrice)> i set it in weblogic server... Deploy bean in weblogic5.1 is perfect... there is no problem in this... I have a problem while running client...
Please help me in this problem
anup vachali
Ranch Hand
Joined: Oct 17, 2000
Posts: 54
posted
0
vikram, i could only take a quick glance at ur client code but it appears as if u r tring to retrieve a record that u created in the same transaction. Try to create the records in a method and then after they have been created try and retrieve them. That might help. lemme know if it did. Thanks Anup
I agree. Here's the link: http://ej-technologies/jprofiler - if it wasn't for jprofiler, we would need to
run our stuff on 16 servers instead of 3.