JNDI lookup in Multitired clustered architecture

Hi alll,
We are in the design phase of a multi tired clustered application.
This application has jsp/servelet cluster and business application cluster. We are confused abt the JNDI lookup logic need to use in servlet cluster.
Can anyone help me to find out an optimal solution for jndi which gives the complete advantage of load balancing and esp. fail over
of clustering
Thanks in advance
gokul

Hi,
          First of all, I would like to clear the point that load balancing can be done within a cluster not among the cluster.
          So if you have more than one cluster the load balancing
          would be at each cluster level.
          For JNDI lookup you have to provide cluster address i.e combination of Managed Server Address e.g:
          t3://localhost:7001,localhost:8001,localhost:9001...etc
          Thanks,
          Qumar

Similar Messages

  • JNDI lookup in a clustered environment

              Hi,
              I have deployed my application on a clustered environment containing one admin
              server and two managed servers. The application is deployed on the managed servers.
              We have a DNS for these two managed servers.
              Currently, I am using t3:localhost:portnumber to get an initial context for JNDI
              lookup.
              But this will not provide perfect load balancing, since each server side component
              (EJB) will lookup for a needed component on the same server itself.
              Is there any way to get the Initial Context by using the DNS name?
              I tried t3:DNSName (Our DNS is created till the port number. e.g. http://DNS points
              to http://Managedserver1:portnumber and http://Managedserver2:portnumber
              It works, but is random. Sometimes, it gives me the following exception:
              Root exception is java.net.ConnectException: t3://DNS Name: Destination not
              reachable using: 't3'
              Could someone help me figure out a way to do this in a better way?
              Thanks,
              Aparna
              

              If you don't want or have money to use external load balancers you should be using
              the DNS entry as t3://server1:port,server2:port (you indicated you are using http.
              Also make sure your network elements between the client and the servers allow
              t3 protocol if there is packet filtering).
              S
              "Aparna" <[email protected]> wrote:
              >
              >Hi,
              >
              >I have deployed my application on a clustered environment containing
              >one admin
              >server and two managed servers. The application is deployed on the managed
              >servers.
              >We have a DNS for these two managed servers.
              >
              >Currently, I am using t3:localhost:portnumber to get an initial context
              >for JNDI
              >lookup.
              >But this will not provide perfect load balancing, since each server side
              >component
              >(EJB) will lookup for a needed component on the same server itself.
              >
              >Is there any way to get the Initial Context by using the DNS name?
              >
              >I tried t3:DNSName (Our DNS is created till the port number. e.g. http://DNS
              >points
              >to http://Managedserver1:portnumber and http://Managedserver2:portnumber
              >
              >It works, but is random. Sometimes, it gives me the following exception:
              > Root exception is java.net.ConnectException: t3://DNS Name: Destination
              > not
              >reachable using: 't3'
              >
              >Could someone help me figure out a way to do this in a better way?
              >
              >Thanks,
              >Aparna
              

  • Queue JNDI lookup in a clustered environment

    Hey all,
              I know in a 6.1 cluster, the queues/JMS servers can only reside on one
              server.
              How can i lookup a queue from internal code from one of the off servers? The
              JNDI lookup doesn't grab it, throws an object not found exception. Do I need
              to
              be using the createQueue() method in the QueueSession class?
              It's fairly critical to know this to get our app up on the cluster, so
              any help would
              be very appreciated!
              Thanks,
              Greg
              

              A dumb question - how do I specify JNDINameReplicated=false? I am using WLS 6.1
              SP3 and in my config.xml I have
              <JMSTopic Name="topicA" JNDIName="topicA" JNDINameReplicated="false" />
              but WebLogic does not like it.
              Eric Ma
              Tom Barnes <[email protected]> wrote:
              >The parameter name "JNDINameReplicated" parameter is only available in
              >a patch
              >on top
              >of SP2 or SP3, and is "true" by default. I doubt that you are using
              >it.
              >
              >Greg Kaestle wrote:
              >
              >> Thanks much,
              >> Where is this parameter set in config.xml?
              >>
              >> Greg
              >>
              >> "Shean-Guang Chang" <[email protected]> wrote in message
              >> news:[email protected]...
              >> > If you want the queue to be found from other server in the same cluster
              >> then
              >> > you should not set "JNDINameReplicated" to false. This
              >> > will make the JNDI name of the queue known to the local server which
              >is
              >> > hosting the JMS queue. The purpose to use "JNDINameReplicated=false"
              >> > is to have multiple queues with the same JNDI name and then use some
              >sort
              >> of
              >> > load balancer to spread load among different JMS servers in the cluster.
              >> >
              >> >
              >> > "Greg Kaestle" <[email protected]> wrote in message
              >> > news:[email protected]...
              >> > > Hey all,
              >> > >
              >> > > I know in a 6.1 cluster, the queues/JMS servers can only reside
              >on
              >> one
              >> > > server.
              >> > > How can i lookup a queue from internal code from one of the off
              >servers?
              >> > The
              >> > > JNDI lookup doesn't grab it, throws an object not found exception.
              >Do I
              >> > need
              >> > > to
              >> > > be using the createQueue() method in the QueueSession class?
              >> > >
              >> > > It's fairly critical to know this to get our app up on the cluster,
              >> so
              >> > > any help would
              >> > > be very appreciated!
              >> > >
              >> > > Thanks,
              >> > > Greg
              >> > >
              >> > >
              >> >
              >> >
              >
              

  • JNDI lookup on clustered server

              I am very new to clustering Weblogic servers, and I'm lost. Here is what my config.xml
              file looks like:
              <?xml version="1.0" encoding="UTF-8"?>
              <Domain ConfigurationVersion="8.1.0.0" Name="mydomain">
              <Cluster MulticastAddress="237.0.0.1" MulticastPort="8035" Name="DomainCluster"/>
              <Server ListenAddress="" ListenPort="8031" Machine="Machine1"
              Name="DomainAdmin" NativeIOEnabled="true" ServerVersion="8.1.0.0" StdoutEnabled="false">
              <SSL Enabled="true" HostnameVerificationIgnored="false"
              IdentityAndTrustLocations="KeyStores" ListenPort="8032" Name="DomainAdmin"/>
              <Log FileCount="1" FileTimeSpan="72" Name="DomainAdmin"
              NumberOfFilesLimited="true" RotationType="byTime"/>
              </Server>
              <Server IIOPEnabled="false" ListenPort="80" Machine="Machine1"
              Name="DomainProxy" NativeIOEnabled="true" StdoutEnabled="false">
              <SSL Enabled="true" IdentityAndTrustLocations="KeyStores"
              ListenPort="443" Name="DomainProxy"/>
              <Log FileCount="1" FileTimeSpan="72" Name="DomainProxy"
              NumberOfFilesLimited="true" RotationType="byTime"/>
              <ExecuteQueue Name="weblogic.kernel.Default" ThreadCount="100"/>
              </Server>
              <Server Cluster="DomainCluster" DomainLogFilter="DomainLogFilter"
              IIOPEnabled="true" ListenPort="8035" Machine="Machine1"
              Name="DomainAppServer1a" NativeIOEnabled="true"
              ServerVersion="8.1.1.0" StdoutEnabled="false">
              <SSL Enabled="true" IdentityAndTrustLocations="KeyStores"
              ListenPort="8036" Name="DomainAppServer1a"/>
              <Log FileCount="1" FileTimeSpan="72" Name="DomainAppServer1a"
              NumberOfFilesLimited="true" RotationType="byTime"/>
              <ExecuteQueue Name="weblogic.kernel.Default" ThreadCount="50"/>
              </Server>
              <Server Cluster="DomainCluster" DomainLogFilter="DomainLogFilter"
              IIOPEnabled="false" ListenPort="8037" Machine="Machine1"
              Name="DomainAppServer1b" NativeIOEnabled="true" StdoutEnabled="false">
              <SSL Enabled="true" IdentityAndTrustLocations="KeyStores"
              ListenPort="8038" Name="DomainAppServer1b"/>
              <Log FileCount="1" FileTimeSpan="72" Name="DomainAppServer1b"
              NumberOfFilesLimited="true" RotationType="byTime"/>
              <ExecuteQueue Name="weblogic.kernel.Default" ThreadCount="50"/>
              </Server>
              <MigratableTarget Cluster="DomainCluster"
              Name="DomainAppServer1a (migratable)"
              Notes="This is a system generated default migratable target for a server.
              Do not delete manually." UserPreferredServer="DomainAppServer1a"/>
              <MigratableTarget Cluster="DomainCluster"
              Name="DomainAppServer1b (migratable)"
              Notes="This is a system generated default migratable target for a server.
              Do not delete manually." UserPreferredServer="DomainAppServer1b"/>
              <UnixMachine Name="Machine1" PostBindGID="domain"
              PostBindGIDEnabled="true" PostBindUID="DOMAIN" PostBindUIDEnabled="true">
              <NodeManager ListenAddress="" ListenPort="8033" Name="Machine1"/>
              </UnixMachine>
              <JMSServer Name="DomainJMSServer1a" Store="DomainJMSFileStore1a" Targets="DomainAppServer1a">
              <JMSTopic CreationTime="..."
              JNDIName="topic.someTopic" Name="someTopic" StoreEnabled="false"/>
              </JMSServer>
              <JMSServer Name="DomainJMSServer1b" Store="DomainJMSFileStore1b" Targets="DomainAppServer1b"/>
              <DomainLogFilter Name="DomainLogFilter" SeverityLevel="1"/>
              <Security Name="Domain" PasswordPolicy="wl_default_password_policy"
              Realm="wl_default_realm" RealmSetup="true"/>
              <EmbeddedLDAP
              Credential="..." Name="Domain"/>
              <SecurityConfiguration
              Credential="..."
              Name="Domain" RealmBootStrapVersion="1"/>
              <Realm FileRealm="wl_default_file_realm" Name="wl_default_realm"/>
              <FileRealm Name="wl_default_file_realm"/>
              <PasswordPolicy Name="wl_default_password_policy"/>
              <JDBCConnectionPool ConnectionCreationRetryFrequencySeconds="60"
              DriverName="oracle.jdbc.driver.OracleDriver" MaxCapacity="5"
              Name="domainPOOL" Password="..."
              Properties="..." ShrinkFrequencySeconds="18000"
              Targets="DomainCluster" TestConnectionsOnCreate="true"
              TestConnectionsOnRelease="true" TestConnectionsOnReserve="true"
              TestFrequencySeconds="300" TestTableName="DUAL" URL="..."/>
              <JDBCTxDataSource JNDIName="domainSource" Name="domainSource"
              PoolName="domainPOOL" Targets="DomainCluster"/>
              <Application Name="MyDomain" Path="domain.ear"
              StagingMode="nostage" TwoPhase="true">
              <EJBComponent Name="domainejb" Targets="DomainCluster" URI="domainEjb.jar"/>
              </Application>
              </Domain>
              As you can, I have two servers configured in my DomainCluster. My EJB, domainejb,
              is tied to
              this cluster. I can't seem to do a JNDI lookup of this EJB, or the JMS Topic
              that I've created.
              When I attempt to do the lookup (from a client on the local machine) using the
              URL
              t3://localhost:8031, I get a NameNotFound Exception. This makes sense, because
              the
              Admin server isn't a part of the cluster. However, when I do the lookup using
              t3://localhost:8035, I get an exception that states that it could not connect
              to a host. I have
              insured that the server at this port is running, and the EJB is located in it's
              JNDI tree.
              I am stumped and could really use someone's help. Please advice.
              Thanks, Joel
              

              Prasad Peddada <[email protected]> wrote:
              >Joel wrote:
              >> I am very new to clustering Weblogic servers, and I'm lost. Here is
              >what my config.xml
              >> file looks like:
              >>
              >> <?xml version="1.0" encoding="UTF-8"?>
              >> <Domain ConfigurationVersion="8.1.0.0" Name="mydomain">
              >> <Cluster MulticastAddress="237.0.0.1" MulticastPort="8035" Name="DomainCluster"/>
              >> <Server ListenAddress="" ListenPort="8031" Machine="Machine1"
              >> Name="DomainAdmin" NativeIOEnabled="true" ServerVersion="8.1.0.0"
              >StdoutEnabled="false">
              >> <SSL Enabled="true" HostnameVerificationIgnored="false"
              >> IdentityAndTrustLocations="KeyStores" ListenPort="8032"
              >Name="DomainAdmin"/>
              >> <Log FileCount="1" FileTimeSpan="72" Name="DomainAdmin"
              >> NumberOfFilesLimited="true" RotationType="byTime"/>
              >> </Server>
              >> <Server IIOPEnabled="false" ListenPort="80" Machine="Machine1"
              >> Name="DomainProxy" NativeIOEnabled="true" StdoutEnabled="false">
              >> <SSL Enabled="true" IdentityAndTrustLocations="KeyStores"
              >> ListenPort="443" Name="DomainProxy"/>
              >> <Log FileCount="1" FileTimeSpan="72" Name="DomainProxy"
              >> NumberOfFilesLimited="true" RotationType="byTime"/>
              >> <ExecuteQueue Name="weblogic.kernel.Default" ThreadCount="100"/>
              >> </Server>
              >> <Server Cluster="DomainCluster" DomainLogFilter="DomainLogFilter"
              >> IIOPEnabled="true" ListenPort="8035" Machine="Machine1"
              >> Name="DomainAppServer1a" NativeIOEnabled="true"
              >> ServerVersion="8.1.1.0" StdoutEnabled="false">
              >> <SSL Enabled="true" IdentityAndTrustLocations="KeyStores"
              >> ListenPort="8036" Name="DomainAppServer1a"/>
              >> <Log FileCount="1" FileTimeSpan="72" Name="DomainAppServer1a"
              >> NumberOfFilesLimited="true" RotationType="byTime"/>
              >> <ExecuteQueue Name="weblogic.kernel.Default" ThreadCount="50"/>
              >> </Server>
              >> <Server Cluster="DomainCluster" DomainLogFilter="DomainLogFilter"
              >> IIOPEnabled="false" ListenPort="8037" Machine="Machine1"
              >> Name="DomainAppServer1b" NativeIOEnabled="true" StdoutEnabled="false">
              >> <SSL Enabled="true" IdentityAndTrustLocations="KeyStores"
              >> ListenPort="8038" Name="DomainAppServer1b"/>
              >> <Log FileCount="1" FileTimeSpan="72" Name="DomainAppServer1b"
              >> NumberOfFilesLimited="true" RotationType="byTime"/>
              >> <ExecuteQueue Name="weblogic.kernel.Default" ThreadCount="50"/>
              >> </Server>
              >> <MigratableTarget Cluster="DomainCluster"
              >> Name="DomainAppServer1a (migratable)"
              >> Notes="This is a system generated default migratable target
              >for a server.
              >> Do not delete manually." UserPreferredServer="DomainAppServer1a"/>
              >> <MigratableTarget Cluster="DomainCluster"
              >> Name="DomainAppServer1b (migratable)"
              >> Notes="This is a system generated default migratable target
              >for a server.
              >> Do not delete manually." UserPreferredServer="DomainAppServer1b"/>
              >> <UnixMachine Name="Machine1" PostBindGID="domain"
              >> PostBindGIDEnabled="true" PostBindUID="DOMAIN" PostBindUIDEnabled="true">
              >> <NodeManager ListenAddress="" ListenPort="8033" Name="Machine1"/>
              >> </UnixMachine>
              >> <JMSServer Name="DomainJMSServer1a" Store="DomainJMSFileStore1a"
              >Targets="DomainAppServer1a">
              >> <JMSTopic CreationTime="..."
              >> JNDIName="topic.someTopic" Name="someTopic" StoreEnabled="false"/>
              >> </JMSServer>
              >> <JMSServer Name="DomainJMSServer1b" Store="DomainJMSFileStore1b"
              >Targets="DomainAppServer1b"/>
              >> <DomainLogFilter Name="DomainLogFilter" SeverityLevel="1"/>
              >> <Security Name="Domain" PasswordPolicy="wl_default_password_policy"
              >> Realm="wl_default_realm" RealmSetup="true"/>
              >> <EmbeddedLDAP
              >> Credential="..." Name="Domain"/>
              >> <SecurityConfiguration
              >> Credential="..."
              >> Name="Domain" RealmBootStrapVersion="1"/>
              >> <Realm FileRealm="wl_default_file_realm" Name="wl_default_realm"/>
              >> <FileRealm Name="wl_default_file_realm"/>
              >> <PasswordPolicy Name="wl_default_password_policy"/>
              >> <JDBCConnectionPool ConnectionCreationRetryFrequencySeconds="60"
              >> DriverName="oracle.jdbc.driver.OracleDriver" MaxCapacity="5"
              >> Name="domainPOOL" Password="..."
              >> Properties="..." ShrinkFrequencySeconds="18000"
              >> Targets="DomainCluster" TestConnectionsOnCreate="true"
              >> TestConnectionsOnRelease="true" TestConnectionsOnReserve="true"
              >> TestFrequencySeconds="300" TestTableName="DUAL" URL="..."/>
              >> <JDBCTxDataSource JNDIName="domainSource" Name="domainSource"
              >> PoolName="domainPOOL" Targets="DomainCluster"/>
              >> <Application Name="MyDomain" Path="domain.ear"
              >> StagingMode="nostage" TwoPhase="true">
              >> <EJBComponent Name="domainejb" Targets="DomainCluster" URI="domainEjb.jar"/>
              >> </Application>
              >> </Domain>
              >>
              >> As you can, I have two servers configured in my DomainCluster. My
              >EJB, domainejb,
              >> is tied to
              >> this cluster. I can't seem to do a JNDI lookup of this EJB, or the
              >JMS Topic
              >> that I've created.
              >> When I attempt to do the lookup (from a client on the local machine)
              >using the
              >> URL
              >> t3://localhost:8031, I get a NameNotFound Exception. This makes sense,
              >because
              >> the
              >> Admin server isn't a part of the cluster. However, when I do the lookup
              >using
              >>
              >> t3://localhost:8035, I get an exception that states that it could not
              >connect
              >> to a host. I have
              >> insured that the server at this port is running, and the EJB is located
              >in it's
              >> JNDI tree.
              >>
              >> I am stumped and could really use someone's help. Please advice.
              >>
              >> Thanks, Joel
              >
              >Trying setting a listen address to specific ip instead of localhost
              >address. Have you tried view the JNDI tree of Managed Servers from console.
              >
              >Cheers,
              >
              >-- Prasad
              >
              Though some problems still remained, having the client use the weblogic.jar rather
              than the thin
              client jars (wljmsclient.jar and wlclient.jar) seemed to cure many of the issues.
              

  • JAVA client JNDI lookup for EJB session in cluster in WLS 5.1

    The documentation says :
              to obtain a Context for JNDI lookup do the following :
              Hashtable ht = new Hashtable();
              ht.put(Context.INITIAL_CONTEXT_FACTORY,
              "weblogic.jndi.WLInitialContextFactory");
              ht.put(Context.PROVIDER_URL, "t3://mycluster:7001");
              try {
              Context ctx = new InitialContext(ht);
              // Do the client's work
              catch (NamingException ne) {
              // A failure occurred
              finally {
              try {ctx.close();}
              catch (Exception e) {
              // a failure occurred
              where "mycluster" is the DNS name of my cluster. My DNS server (Windows 200
              DNS server) use round robin
              to call alernatively all the wls server node in "mycluster" and it's OK. The
              two servers of my cluster
              are called alternatively for my EJB session stateless.
              Now I unplug one of the two nodes of my cluster and the remaining server is
              called only 2 times
              and not after.
              Questions :
              -is the load balancing between the nodes of mycluster only rely on DNS or
              is there an internal
              mecanism in EJB sub to try one server then an other ?
              - do I need to obtain a new reference on JNDI Context for each call ?
              Thank's a lot.
              Farid Bellameche.
              

              I too have the same problem. My scenario is :
              I have the web tier architecture away from cluster. All ejbs are in cluster
              running in two seperate machines. We have a factory class running in
              webtier(we use servlet in this tier) which obtains home interface only once
              and stores it for future reference. When ever we need the remoteobject stub,
              we ask the factory class and which in turn uses the stored home interface to
              get the same.
              In the webtier, I list all the servers in the cluster as a part of url as
              mentioned by you.
              I started the web tier as well as Object tier cluster. I could see the
              request coming in both the machines in the cluster for the ejb. But When I
              bring one the server in the cluster,
              1. Web tier throws an exception saying that it could not connect
              to server using t3.
              2. The other machine which is running the server, also says
              'failed to create socket to : -32323234324 sever name
              using protocol t3.
              It looks like I am able to get load balance. But I am not able to get the
              fail over to be working.
              In the weblogic-ejb-jar.xml, I added the following.
              <clustering-descriptor>
              <home-is-clusterable>true</home-is-clusterable>
              <home-load-algorithm>round-robin</home-load-algorithm>
              </clustering-descriptor>
              I compiled and added the .jar file. So the jar file now has replica aware
              stubs.
              Could any one of you help me for why the fail over is not working?
              Suersh
              "Giri Alwar" <[email protected]> wrote in message
              news:[email protected]...
              > Farid,
              > (1) Yes, the stub has the logic to perform load-balancing and
              fail-over.
              > (2) In almost all cases, no. You can get the context once, store it
              and
              > use it thereafter. Please refer to
              > http://www.weblogic.com/docs51/cluster/concepts.html#1025061 for more
              info.
              >
              > A couple of notes on your situation. From what you are describing, your
              > Windows DNS server is setup to serve only one IP from the cluster (using
              > round-robin) as opposed to a list of all IP's in the cluster. Hence, the
              > initial context you obtain is tied to a single server in the cluster (the
              > one returned by the DNS). The weblogic implementation on the client side
              has
              > no idea of the existence of the other servers in the cluster. This is not
              a
              > cluster aware context. To obtain a cluster aware context, either list all
              > the IP's in the URL like t3://server1,server2,server3:7001 or have
              > "mycluster" return a list of all servers in the cluster.
              >
              > Giri
              >
              >
              > "Farid Bellameche" <[email protected]> wrote in message
              > news:[email protected]...
              > > The documentation says :
              > >
              > > to obtain a Context for JNDI lookup do the following :
              > > Hashtable ht = new Hashtable();
              > > ht.put(Context.INITIAL_CONTEXT_FACTORY,
              > > "weblogic.jndi.WLInitialContextFactory");
              > > ht.put(Context.PROVIDER_URL, "t3://mycluster:7001");
              > > try {
              > > Context ctx = new InitialContext(ht);
              > > // Do the client's work
              > > }
              > > catch (NamingException ne) {
              > > // A failure occurred
              > > }
              > > finally {
              > > try {ctx.close();}
              > > catch (Exception e) {
              > > // a failure occurred
              > > }
              > > }
              > >
              > > where "mycluster" is the DNS name of my cluster. My DNS server (Windows
              > 200
              > > DNS server) use round robin
              > > to call alernatively all the wls server node in "mycluster" and it's OK.
              > The
              > > two servers of my cluster
              > > are called alternatively for my EJB session stateless.
              > > Now I unplug one of the two nodes of my cluster and the remaining server
              > is
              > > called only 2 times
              > > and not after.
              > >
              > > Questions :
              > > -is the load balancing between the nodes of mycluster only rely on DNS
              > or
              > > is there an internal
              > > mecanism in EJB sub to try one server then an other ?
              > >
              > > - do I need to obtain a new reference on JNDI Context for each call ?
              > >
              > >
              > > Thank's a lot.
              > >
              > > Farid Bellameche.
              > >
              > >
              > >
              > >
              >
              >
              

  • JNDI lookup using a proxy server

    Hi,
    I'm trying to use a weblogic server as a proxy server for a cluster of
    weblogic servers. The static and dynamic content delivery works fine but
    when I try to do a JNDI lookup from an applet client, I get a name not
    resolved exception. I guess, it happens because the proxy server tries to
    resolve the name from it's JNDI tree, whereas I expect it to forward this
    request to one of the servers in the cluster. Is this possible? If it is, do
    I need to set up some parameters in the proxy server? If not, can I do this
    myself by writing a name resolution class which in turn will forward the
    request to one of the servers in the cluster?
    Any help would be greatly appreciated.
    thanks
    - sanjay

    when u say "cluster of weblogic servers"..u mean the weblogic`s inbuilt
    cluster..
    the reason i ask is weblogic`s cluster do provide JNDI clustering too by using
    cluster-wide naming tree..
    Sanjay Aggarwal wrote:
    Hi,
    I'm trying to use a weblogic server as a proxy server for a cluster of
    weblogic servers. The static and dynamic content delivery works fine but
    when I try to do a JNDI lookup from an applet client, I get a name not
    resolved exception. I guess, it happens because the proxy server tries to
    resolve the name from it's JNDI tree, whereas I expect it to forward this
    request to one of the servers in the cluster. Is this possible? If it is, do
    I need to set up some parameters in the proxy server? If not, can I do this
    myself by writing a name resolution class which in turn will forward the
    request to one of the servers in the cluster?
    Any help would be greatly appreciated.
    thanks
    - sanjay

  • How to create InitialContext for JNDI lookup in a cluster?

              I am new to clusters in WL7 and I wanted to know how a client would create an InitialContext
              object to perform a JNDI lookup for a remote object deployed across serveral servers
              in the cluster. Is the following correct?
              Physcial Servers in the cluster
              machine1:9001
              machine2:9001
              machine3:9001
              Code for creating InitialContext
              Properties p = new Properties();
              p.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
              p.put(Context.PROVIDER_URL, "machine1:9001,machine2:9001,machine3:9001");
              Context c = new InitialContext( p);
              Thanks,
              Raffi
              

    Hi Ivaylo,
    There's another alternative solution to your problem. You can have the screen 120 as a user-defined selection screen. i.e., instead of creating this screen through the screen painter, you can create it from within your ABAP Program. This way, you can directly use the SELECT-OPTIONS statement within your screen. You then will no longer have to bother about how to handle the data for the field.
    Especially in the case where your screen 120 has few elements, this approach, in my opinion, will be the best.
    Please let me know if you need any further clarifications on how to go about it if you choose to follow this approach.
    Regards,
    Anand Mandalika.

  • Objects returned via JNDI Lookup

    All,
    I have had this nagging question in my head about JNDI lookups for some time
    now, but haven't had the time to do the proper research. The question is
    simple.
    The setup is simple as well. Suppose that we have a typical WLS setup, with
    WLS running in a JVM on a server host somewhere, with objects bound to its
    JNDI tree (we'll leave clustering out of the picture for simplicity's sake),
    and we also have a WLS client Java application. The client connects to WLS
    and performs various JNDI lookups on the server. Some of these objects
    implement java.io.Serializable, some do not.
    The question is, if the client uses JNDI to lookup an object that exsts in a
    separate JVM, and that object does not implement Serializable, how does this
    object come to be instantiated on the client?
    This leads to a second question: What exactly is getting returned from a
    JNDI lookup? A reference to an object or a copy of it? I can see that
    lookups within a single JVM would return a reference, but the cross-JVM
    lookup is less clear to me.
    Any and all help appreciated,
    -jc

    This leads to a second question: What exactly is getting returned from a
    JNDI lookup?From how I understand it, only Serializable objects are returned such as RMI
    stubs, which serve as proxies to EJB or other RMI servers registered in JNDI.
    - Thomas
    (ex-BONY too)
    Jonathan Castellani wrote:
    All,
    I have had this nagging question in my head about JNDI lookups for some time
    now, but haven't had the time to do the proper research. The question is
    simple.
    The setup is simple as well. Suppose that we have a typical WLS setup, with
    WLS running in a JVM on a server host somewhere, with objects bound to its
    JNDI tree (we'll leave clustering out of the picture for simplicity's sake),
    and we also have a WLS client Java application. The client connects to WLS
    and performs various JNDI lookups on the server. Some of these objects
    implement java.io.Serializable, some do not.
    The question is, if the client uses JNDI to lookup an object that exsts in a
    separate JVM, and that object does not implement Serializable, how does this
    object come to be instantiated on the client?
    This leads to a second question: What exactly is getting returned from a
    JNDI lookup? A reference to an object or a copy of it? I can see that
    lookups within a single JVM would return a reference, but the cross-JVM
    lookup is less clear to me.
    Any and all help appreciated,
    -jc

  • WLS/OSB DB Adapter - JNDI lookup failed

    Hello all.
    I've got a DB adapter service set up in a clustered environment, and it all works (and I've built proxy services, transformations etc around it), but I've just noticed that the log shows a warning regarding the JNDI lookup of the ConnectionFactory, as below.
    It's working, and the error is only a warning, but could this cause problems going forward, particularly with regards performance?
    Given that the ConnectionFactory name is 'com.whatever.myServiceDB', and the Endpoint URI of the service is 'jca://com.whatever.myServiceDB', what could be wrong? Has anyone seen/fixed this before? It's almost like the managed servers don't know about the JNDI name...but the DbAdapter deployent has 'All servers in the cluster' selected in its 'Targets' tab, so I'm not sure.
    Any pointers would be appreciated, I'm probably missing something obvious.
    Cheers.
    ####<Apr 15, 2010 10:53:10 AM BST> <Warning> <JCA_FRAMEWORK_AND_ADAPTER> <servername> <managed3_domainname> <[ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'> <<anonymous>> <> <> <1271325190453> <BEA-000000> <servicebus:/WSDL/MyProject/MyService [ MyService_ptt::merge(MessagesCollection) ] - JNDI lookup of 'com.whatever.myServiceDB' failed due to: String index out of range: -1>

    Thanks again.
    In case anyone runs into a similar problem and is wondering: a bit of mucking about reveals that the WLS ConnectionFactory config is fine with dots or slashes, and it seems to treat both the same when creating the JNDI tree.
    However, the WSDL (that you probably created in JDeveloper) has to have slashes for doing its lookup. So, for example, always use slashes rather than dots when setting your DB Adapter JNDI name in JDeveloper. I guess this is a bit different from usual class/package naming standards, so may catch someone else out too.
    Cheers.

  • Minimizing JNDI lookups

    Hi!
    We've implemented a simple EJBHome caching mechanism to reduce JNDI lookups. As many of you may know, a JNDI lookup is expensive in resource terms.
    Using the Oracle 9iAS JavaCache service is discarded because we need a vendor independant solution.
    Our implementation works fine in an OC4J standalone environment where each EJB is looked up and created in the same instance.
    But we don't know how it would perform in a clustered environment (Oracle 9iAS Enterprise) and we don't have an installation avalaible to try it and make the performance improvement announcement for our customers. (they are asking us to do it ASAP).
    So the key here is when the EJB load balance happens?, in the JNDI lookup or in the EJB create() method ?
    Thanks
    Franco Catrin L.
    TUXPAN

    I'm using a Singleton class to cache HomeInterfaces. The first time a
    HomeInterface is requested, the JNDI lookup is done, after that, all
    requests to that HomeInterface are handled by the cache. Works great, no
    problems. AFAIK there are no problems with storing the HomeInterface
    reference and reusing it.
    Hope that helps,
    Nils
    Tiffany wrote:
    >
    JNDI lookups are expensive timewise. Our question is ... would it be
    pratical to lookup all our EJB Home interfaces once at startup and store
    these references in a global class accessible to all clients? These home
    interfaces then become readily available factories for acquiring instances
    of remote interfaces. Is there anything wrong with this picture? Is this a
    problem because these home stubs are not reentrant and may be accessed
    concurrently by more than one client? Is there a problem with have one home
    reference create multiple remote references of an ejb?
    Any light that can be shed on this question wouls be appreciated.
    Thanks.
    tiffany
    San Diego--
    ============================
    [email protected]

  • JNDI lookup with DNS

    Hi all,
    we are using 2 weblogic 5.1 servers (not clustered) for
    our load balancing solution. In our client applications,
    we use a hostname against a DNS for the JNDI lookups for our
    RMI objects deployed on the 2 weblogic servers.
    Ideally, a round-robin load balancing is expected.
    But in reality, all the lookups are sticking to one of our
    servers until we restart our client applications. The
    lookups may switch to another. In our applications,
    we are making many subsequent RMI lookup using JNDI.
    We would like to spread the remote method invocation
    between our 2 servers. How can we integrate with the
    DNS? We have proved that the DNS will return the
    IP addresses of the 2 weblogic in round-robin manner.
    thanks!
    cheers,
    Kenneth
    [email protected]

    Ken,
    What client are you using? We had the same problem when we switched from
    Windows NT to Windows 2000 clients. Round-robin worked fine in NT and by
    default got "stuck" when we tried it from Win 2000 client. There is a
    setting in the network properties on Win 2000 to "unstick" that will fix the
    problem, if this is the setup you have?
    Bart Jenkins, Globeflow SA
    [email protected]
    "Kenneth Yue" <[email protected]> wrote in message
    news:3bb09863$[email protected]..
    >
    >
    Hi all,
    we are using 2 weblogic 5.1 servers (not clustered) for
    our load balancing solution. In our client applications,
    we use a hostname against a DNS for the JNDI lookups for our
    RMI objects deployed on the 2 weblogic servers.
    Ideally, a round-robin load balancing is expected.
    But in reality, all the lookups are sticking to one of our
    servers until we restart our client applications. The
    lookups may switch to another. In our applications,
    we are making many subsequent RMI lookup using JNDI.
    We would like to spread the remote method invocation
    between our 2 servers. How can we integrate with the
    DNS? We have proved that the DNS will return the
    IP addresses of the 2 weblogic in round-robin manner.
    thanks!
    cheers,
    Kenneth
    [email protected]

  • EJB 3.0 and jndi lookup (simple question)

    hi all,
    i am newbie on Weblogic Application Server and i have some issues,
    i have weblogic application server 10.0, also i have oracle timesten in-memory database, i have configured datasource and deploy my ejb 3.0 application, but i could not done jndi lookup?
    here is my example:
    1. one stateless session bean :
    import javax.ejb.Remote;
    @Remote
    public interface InsertSubscriber {
         public void insertSubscriber(SubscriberT subscriberT);
    } 2. here is it's implementation :
    @Remote(InsertSubscriber.class)
    @Stateless
    public class InsertSubscriberBean implements InsertSubscriber {
         @PersistenceContext(unitName = "TimesTenDS")
         private EntityManager oracleManager;
         public void insertSubscriber(SubscriberT subscriber)
              try {
                   System.out.println("started");
                   oracleManager.persist(subscriber);
                   System.out.println("end");
              } catch (Exception e) {
                   e.printStackTrace();
    }3 and my test client :
    public class Client {
         public static void main(String[] args) {
              Context ctx = null;
              Hashtable ht = new Hashtable();
              ht.put(Context.INITIAL_CONTEXT_FACTORY,
                        "weblogic.jndi.WLInitialContextFactory");
              ht.put(Context.PROVIDER_URL, "t3://192.9.200.222:7001");
              try {
                   ctx = new InitialContext(ht);
                   InsertSubscriber usagefasade = (InsertSubscriber) ctx
                             .lookup("ejb.InsertSubscriberBean");               
              } catch (NamingException e) {
                   e.printStackTrace();
              } finally {
                   try {
                        ctx.close();
                   } catch (Exception e) {
                        e.printStackTrace();
    }what i did incorrect ???
    i got error like this : Name not fount exception
    when i tried to view jndi tree on weblogic server application console i found this :
         Binding Name:     
    TimestenExampleTimestenExample_jarInsertSubscriberBean_InsertSubscriber     
         Class:     
    test.InsertSubscriberBean_o7jk9u_InsertSubscriberImpl_1000_WLStub     
         Hash Code:     
    286     
         toString Results:     
    weblogic.rmi.internal.CollocatedRemoteRef - hostID: '2929168367193491522S::billing_domain:AdminServer', oid: '286', channel: 'null'what does it mean how i can done lookup to jndi ?
    Regards,
    Paata Lominadze,
    Magticom LTD.
    Georgia.

    Hi All,
    I am using the weblogic cluster with session replication and EJB 2.0 with Local entity beans.
    for fail-over session should be replicated to another server so we can achive the same session if 1st server fails.
    Suppose i m using two managed server(server1,server2) in the cluster.I am storing the object of class ABC into session and object contains the instance of Local-EntityBean home but i put that as a transient.I have also override the readObject and write object method.
    when write object is called on 1st server,readObject method should be called on second server so we will be sure that session is replicating properly.
    pleaase find the code below : -
    public IssuerPageBean() {
    initEJB();
    private void readObject(java.io.ObjectInputStream stream) throws IOException, ClassNotFoundException {
    stream.defaultReadObject();
    initEJB();
    initializeCommonObject();
    private void writeObject(java.io.ObjectOutputStream stream) throws IOException {
    stream.defaultWriteObject();
    private void initEJB() {
    try {
    ic = new InitialContext();
    issuerHome = (LocalIssuerHome) ic.lookup("java:comp/env/Issuer");
    } catch (NamingException e) {
    e.printStackTrace();
    in my case if i am calling the constructor IssuerPageBean(),it calls the initEJB() method and lookeup the entity local home properly but when readObject method is called on another server only initEJB() method is called directly and getting the exception below :
    WARNING: Error during create -
    javax.naming.NameNotFoundException: remaining name: env/ejb/Client
    at weblogic.j2eeclient.SimpleContext.resolve(Ljavax/naming/Name;Z)Ljavax/naming/Context;(SimpleContext.java:35)
    at weblogic.j2eeclient.SimpleContext.resolve(Ljavax/naming/Name;)Ljavax/naming/Context;(SimpleContext.java:39)
    at weblogic.j2eeclient.SimpleContext.lookup(Ljavax/naming/Name;)Ljava/lang/Object;(SimpleContext.java:57)
    at weblogic.j2eeclient.SimpleContext.lookup(Ljavax/naming/Name;)Ljava/lang/Object;(SimpleContext.java:57)
    at weblogic.j2eeclient.SimpleContext.lookup(Ljava/lang/String;)Ljava/lang/Object;(SimpleContext.java:62)
    at weblogic.jndi.factories.java.ReadOnlyContextWrapper.lookup(Ljava/lang/String;)Ljava/lang/Object;(ReadOnlyCont
    extWrapper.java:45)
    at weblogic.jndi.internal.AbstractURLContext.lookup(Ljava/lang/String;)Ljava/lang/Object;(AbstractURLContext.jav
    a:130)
    at javax.naming.InitialContext.lookup(Ljava/lang/String;)Ljava/lang/Object;(InitialContext.java:347)
    at com.lb.equities.veda.tools.salesvault.jsp.ClientPageBean.initEJB()V(ClientPageBean.java:218)
    at com.lb.equities.veda.tools.salesvault.jsp.ClientPageBean.readObject(Ljava/io/ObjectInputStream;)V(ClientPageB
    ean.java:191)
    at java.lang.LangAccessImpl.readObject(Ljava/lang/Class;Ljava/lang/Object;Ljava/io/ObjectInputStream;)V(Unknown
    Source)
    at java.io.ObjectStreamClass.invokeReadObject(Ljava/lang/Object;Ljava/io/ObjectInputStream;)V(Unknown Source)
    at java.io.ObjectInputStream.readSerialData(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V(Unknown Source)
    at java.io.ObjectInputStream.readOrdinaryObject(Z)Ljava/lang/Object;(Unknown Source)
    at java.io.ObjectInputStream.readObject0(Z)Ljava/lang/Object;(Unknown Source)
    at java.io.ObjectInputStream.readObject()Ljava/lang/Object;(Unknown Source)
    at java.util.HashMap.readObject(Ljava/io/ObjectInputStream;)V(Unknown Source)
    at java.lang.LangAccessImpl.readObject(Ljava/lang/Class;Ljava/lang/Object;Ljava/io/ObjectInputStream;)V(Unknown
    Source)
    at java.io.ObjectStreamClass.invokeReadObject(Ljava/lang/Object;Ljava/io/ObjectInputStream;)V(Unknown Source)
    at java.io.ObjectInputStream.readSerialData(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V(Unknown Source)
    at java.io.ObjectInputStream.readOrdinaryObject(Z)Ljava/lang/Object;(Unknown Source)
    at java.io.ObjectInputStream.readObject0(Z)Ljava/lang/Object;(Unknown Source)
    at java.io.ObjectInputStream.defaultReadFields(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V(Unknown Source)
    at java.io.ObjectInputStream.readSerialData(Ljava/lang/Object;Ljava/io/ObjectStreamClass;)V(Unknown Source)
    at java.io.ObjectInputStream.readOrdinaryObject(Z)Ljava/lang/Object;(Unknown Source)
    at java.io.ObjectInputStream.readObject0(Z)Ljava/lang/Object;(Unknown Source)
    at java.io.ObjectInputStream.readObject()Ljava/lang/Object;(Unknown Source)
    at weblogic.common.internal.ChunkedObjectInputStream.readObject()Ljava/lang/Object;(ChunkedObjectInputStream.jav
    a:120)
    at weblogic.rjvm.MsgAbbrevInputStream.readObject(Ljava/lang/Class;)Ljava/lang/Object;(MsgAbbrevInputStream.java:
    121)
    at weblogic.cluster.replication.ReplicationManager_WLSkel.invoke(ILweblogic/rmi/spi/InboundRequest;Lweblogic/rmi
    /spi/OutboundResponse;Ljava/lang/Object;)Lweblogic/rmi/spi/OutboundResponse;(Unknown Source)
    at weblogic.rmi.internal.BasicServerRef.invoke(Lweblogic/rmi/extensions/server/RuntimeMethodDescriptor;Lweblogic
    /rmi/spi/InboundRequest;Lweblogic/rmi/spi/OutboundResponse;)V(BasicServerRef.java:492)
    Please help .
    Thanks in Advance.
    Edited by hforever at 03/04/2008 7:28 AM

  • EJB 3.0 JNDI lookup gives ClassCastException

    The object returned by the JNDI lookup of a EJB 3.0 Statefull Session Bean is not of the expected type, but rather of an obviously generated Proxy type (ejb_DistributionProcessor_LocalProxy_4h350 instead of expected DistributionProcessor). Does anybody have any idea about what this could be?
    Details:
    We are using annotations @Statefull and @Local and are deploying on a standalone OC4J 10.1.3.1. The beans are presumably loaded correctly since they get listed in Enterprise Managers list of beans for the application. There is also obviously an object at the desired JNDI location, presumably some kind of proxy. Unfortunately the proxy cannot be cast to the original type making the retrieved object useless.
    I can supply more details if necessary, but really don't know what more is relevant.

    Well, I figured it out, it seems I had the classes in both the EJB and the WEB deployment, so when casting it tried to cast X from EJB to X from WEB application and since they reside in different locations they weren't the same file and therefore not castable.

  • JNDI Lookup in JSP fails for EJB 3.0

    I am new to Java technology. I read the EJB FAQ, NetBeans docs and may forum discussions and I am still confused with the error I am having.
    Background:
    I have developed a persistance bean and related sessions beans (similar to the customer-cmp-ear application in the Java App Server samples). Now I am trying to access this bean using a JSP. After deploying the war file in the App Server and try to access the page, I get the following error.
    javax.naming.NameNotFoundException: No object bound to name java:comp/env/ConsumerSessionLocal
    After reading many articles, I understood that I dont have to prepare any descriptors, or JAR files for EJB 3.0.
    Environment Details:
    Java App Server Ver 9.0
    NetBeans 5.5
    I normally build the war files using NetBeans.
    I use App Server Admin console to deploy the web applications using the above war file.
    EJB details:
    Persistance EJB : person.java
    Session Objects
    Consumer.java (this implements ConsumerSessionLocal, ConsumerSessionRemote). This Stateless bean accesses the methods in person.java.
    ConsumerSessionLocal.java - local interface
    ConsumerSessionRemote.java - remote interface
    SearchConsumer.jsp
    This JSP page is calling the ConsumerSessionLocal using the JNDI lookup through InitialContext.
    Here is the Code snippet:
    try {
    InitialContext ic = new InitialContext();
    Object o = ic.lookup("java:comp/env/ConsumerSessionLocal");
    ConsumerSessionLocal consSession = (ConsumerSessionLocal) o;
    I am able to see the jsp page in the browser, however, after a submit action, I get the Java Naming Exception error.
    javax.naming.NameNotFoundException: No object bound for java:comp/env/ConsumerSessionLocal
    I would appreciate your help/any of your thoughts.
    Thanks in advance.
    -Ram

    I did not really solve it. Instead I used some of the tutorials that used JNDI lookup and modified those as my way forward. I did not really find out exactly what I was doing wrong.
    /Anders

  • JNDI lookup issue in weblogic 10 server

    Hi all,
    I have a serious problem in getting the datasource lookup. My application uses EJB3 and JPA and it is deployed in weblogic10. I configured datasource in the domain (ex:mydomain) using weblogic 10 admin console. Now when i try to call from a client program, it is giving me javax.naming.NameNotFoundException. I use eclipse IDE to deploy the application. From the IDE, i can start the oracle 10.3 server and it automatically deploys the application into the server in mydomain. The admin console shows that the application deployed fine. And i can see the webcontent WAR file and EJB jar deployed. Coming back to the issue.... I verified user_projects\domains\mydomain\config\jdbc\datasource-jdbc.xml and user_projects\domains\mydomain\config\config.xml file enteries. My entries are present in those files.
    When i start the server i am getting below error...
    << Stacktrace >>
    javax.naming.NameNotFoundException: While trying to look up jdbc in /app.; remaining name 'jdbc'
         at weblogic.jndi.internal.BasicNamingNode.newNameNotFoundException(BasicNamingNode.java:1139)
         at weblogic.jndi.internal.ApplicationNamingNode.lookup(ApplicationNamingNode.java:144)
         at weblogic.jndi.internal.WLEventContextImpl.lookup(WLEventContextImpl.java:254)
         at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:380)
         at weblogic.deployment.PersistenceUnitInfoImpl.lookUpAppScopedDataSource(PersistenceUnitInfoImpl.java:529)
         at weblogic.deployment.PersistenceUnitInfoImpl.reconfig(PersistenceUnitInfoImpl.java:549)
         at weblogic.ejb.container.deployer.EJBModule.reconfigPersistenceUnits(EJBModule.java:529)
         at weblogic.ejb.container.deployer.EJBModule.activate(EJBModule.java:515)
         at weblogic.application.internal.flow.ModuleListenerInvoker.activate(ModuleListenerInvoker.java:107)
         at weblogic.application.internal.flow.DeploymentCallbackFlow$2.next(DeploymentCallbackFlow.java:411)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
         at weblogic.application.internal.flow.DeploymentCallbackFlow.activate(DeploymentCallbackFlow.java:74)
         at weblogic.application.internal.flow.DeploymentCallbackFlow.activate(DeploymentCallbackFlow.java:66)
         at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:635)
         at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37)
         at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:212)
         at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:16)
         at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:162)
         at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79)
         at weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:569)
         at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:140)
         at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:106)
         at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:323)
         at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:820)
         at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1227)
         at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:436)
         at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:163)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:181)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:12)
         at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:67)
         at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516)
         at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
         at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
    << Client program snippet >>
    Hashtable ht = new Hashtable();
                   ht.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
                   ht.put(Context.PROVIDER_URL, "t3://10.237.76.132:7001");
                   InitialContext ctx = null;
                   ctx = new InitialContext(ht);
                   Object obj = (Object)ctx.lookup(EmployeeBean.RemoteJNDIName);
                   EmployeeRemote empRemote = (EmployeeRemote)PortableRemoteObject.narrow(obj,com.acs.test.emp.EmployeeRemote.class);
                   List empList = empRemote.getEmployeeDetails(1);
                   System.out.println("SUCCESS"+empList.size());
    << Persistence.xml >>
    <?xml version="1.0" encoding="UTF-8"?>
    <!-- Persistence deployment descriptor for dev profile -->
    <persistence xmlns="http://java.sun.com/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
    version="1.0">
    <persistence-unit name="cmsepool">
    <jta-data-source>java:/mydatasource</jta-data-source>
              <class>com.acs.test.emp.EmployeeVO</class>
              <properties>
    <property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
              <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.WeblogicTransactionManagerLookup"/>
    </properties>
    </persistence-unit>
    </persistence>

    Make sure that this Datasource you created is Targetted to Admin Server and full Cluster (incase of cluster domain). From Admin Console, select your datasource and check for the Targets tab. Since its JNDI lookup error, most probably it may not be deployed properly.
    HTH
    Ravi Jegga

Maybe you are looking for