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.
Similar Messages
-
JNDI Lookup for multiple server instances with multiple cluster nodes
Hi Experts,
I need help with retreiving log files for multiple server instances with multiple cluster nodes. The system is Netweaver 7.01.
There are 3 server instances all instances with 3 cluster nodes.
There are EJB session beans deployed on them to retreive the log information for each server node.
In the session bean there is a method:
public List getServers() {
List servers = new ArrayList();
ClassLoader saveLoader = Thread.currentThread().getContextClassLoader();
try {
Properties prop = new Properties();
prop.setProperty(Context.INITIAL_CONTEXT_FACTORY, "com.sap.engine.services.jndi.InitialContextFactoryImpl");
prop.put(Context.SECURITY_AUTHENTICATION, "none");
Thread.currentThread().setContextClassLoader((com.sap.engine.services.adminadapter.interfaces.RemoteAdminInterface.class).getClassLoader());
InitialContext mInitialContext = new InitialContext(prop);
RemoteAdminInterface rai = (RemoteAdminInterface) mInitialContext.lookup("adminadapter");
ClusterAdministrator cadm = rai.getClusterAdministrator();
ConvenienceEngineAdministrator cea = rai.getConvenienceEngineAdministrator();
int nodeId[] = cea.getClusterNodeIds();
int dispatcherId = 0;
String dispatcherIP = null;
String p4Port = null;
for (int i = 0; i < nodeId.length; i++) {
if (cea.getClusterNodeType(nodeId[i]) != 1)
continue;
Properties dispatcherProp = cadm.getNodeInfo(nodeId[i]);
dispatcherIP = dispatcherProp.getProperty("Host", "localhost");
p4Port = cea.getServiceProperty(nodeId[i], "p4", "port");
String[] loc = new String[3];
loc[0] = dispatcherIP;
loc[1] = p4Port;
loc[2] = null;
servers.add(loc);
mInitialContext.close();
} catch (NamingException e) {
} catch (RemoteException e) {
} finally {
Thread.currentThread().setContextClassLoader(saveLoader);
return servers;
and the retreived server information used here in another class:
public void run() {
ReadLogsSession readLogsSession;
int total = servers.size();
for (Iterator iter = servers.iterator(); iter.hasNext();) {
if (keepAlive) {
try {
Thread.sleep(500);
} catch (InterruptedException e) {
status = status + e.getMessage();
System.err.println("LogReader Thread Exception" + e.toString());
e.printStackTrace();
String[] serverLocs = (String[]) iter.next();
searchFilter.setDetails("[" + serverLocs[1] + "]");
Properties prop = new Properties();
prop.put(Context.INITIAL_CONTEXT_FACTORY, "com.sap.engine.services.jndi.InitialContextFactoryImpl");
prop.put(Context.PROVIDER_URL, serverLocs[0] + ":" + serverLocs[1]);
System.err.println("LogReader run [" + serverLocs[0] + ":" + serverLocs[1] + "]");
status = " Reading :[" + serverLocs[0] + ":" + serverLocs[1] + "] servers :[" + currentIndex + "/" + total + " ] ";
prop.put("force_remote", "true");
prop.put(Context.SECURITY_AUTHENTICATION, "none");
try {
Context ctx = new InitialContext(prop);
Object ob = ctx.lookup("com.xom.sia.ReadLogsSession");
ReadLogsSessionHome readLogsSessionHome = (ReadLogsSessionHome) PortableRemoteObject.narrow(ob, ReadLogsSessionHome.class);
status = status + "Found ReadLogsSessionHome ["+readLogsSessionHome+"]";
readLogsSession = readLogsSessionHome.create();
if(readLogsSession!=null){
status = status + " Created ["+readLogsSession+"]";
List l = readLogsSession.getAuditLogs(searchFilter);
serverLocs[2] = String.valueOf(l.size());
status = status + serverLocs[2];
allRecords.addAll(l);
}else{
status = status + " unable to create readLogsSession ";
ctx.close();
} catch (NamingException e) {
status = status + e.getMessage();
System.err.println(e.getMessage());
e.printStackTrace();
} catch (CreateException e) {
status = status + e.getMessage();
System.err.println(e.getMessage());
e.printStackTrace();
} catch (IOException e) {
status = status + e.getMessage();
System.err.println(e.getMessage());
e.printStackTrace();
} catch (Exception e) {
status = status + e.getMessage();
System.err.println(e.getMessage());
e.printStackTrace();
currentIndex++;
jobComplete = true;
The application is working for multiple server instances with a single cluster node but not working for multiple cusltered environment.
Anybody knows what should be changed to handle more cluster nodes?
Thanks,
GergelyThanks for the response.
I was afraid that it would be something like that although
was hoping for
something closer to the application pools we use with IIS to
isolate sites
and limit the impact one badly behaving one can have on
another.
mmr
"Ian Skinner" <[email protected]> wrote in message
news:fe5u5v$pue$[email protected]..
> Run CF with one instance. Look at your processes and see
how much memory
> the "JRun" process is using, multiply this by number of
other CF
> instances.
>
> You are most likely going to end up on implementing a
"handful" of
> instances versus "dozens" of instance on all but the
beefiest of servers.
>
> This can be affected by how much memory each instance
uses. An
> application that puts major amounts of data into
persistent scopes such as
> application and|or session will have a larger foot print
then a leaner
> application that does not put much data into memory
and|or leave it there
> for a very long time.
>
> I know the first time we made use of CF in it's
multi-home flavor, we went
> a bit overboard and created way too many. After nearly
bringing a
> moderate server to its knees, we consolidated until we
had three or four
> or so IIRC. A couple dedicated to to each of our largest
and most
> critical applications and a couple general instances
that ran many smaller
> applications each.
>
>
>
>
> -
JNDI lookup() for sql server jdbc datasource returns null
Hi,
I am trying to use a jdbc datasource in tomcat 5 to access a sql server 2000 database. I had many common problems and did found an answer to them in the forums but I'm having one last (I hope) problem. My program is also using a mySQL datasource and it works fine.
The problem is that my lookup returns null. No exception, just null. It seems that many people had this problem but I didn't found any answer to it.
This is the lookup code:
Context ctx = new InitialContext();
Context envCtx = (Context)ctx.lookup("java:comp/env");
axaptaDS = (DataSource) envCtx.lookup("jdbc/axapta"); //returns null :(This my context.xml config:
<ResourceParams name="jdbc/axapta">
<parameter>
<name>factory</name>
<value>com.microsoft.jdbcx.sqlserver.SQLServerDataSourceFactory</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://hostname:1433</value>
</parameter>
<parameter>
<name>password</name>
<value>password</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>4</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbcx.sqlserver.SQLServerDataSource</value>
</parameter>
<parameter>
<name>username</name>
<value>username</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
</ResourceParams>And I also put these lines in my web.xml file:
<resource-ref id="ResourceRef_1092254277306">
<res-ref-name>jdbc/axapta</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>Thanks for helping!I finally found a remedy to this problem:
specify this driver instead and remove the entry about the factory in the context's .xml file:
com.microsoft.jdbc.sqlserver.SQLServerDriver -
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,
-jcThis 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 -
All,
I have this question in my head about JNDI lookups, but haven't received proper
information when i do research. The question is simple.
The setup is simple as well. Suppose that we have a typical WLS cluster setup,
with
WLS running in a JVM on a server host somewhere, with objects bound to its
JNDI tree, and we also have a WLS client Java application. The client connects
to WLS
and performs JNDI lookups on the server.
The question is, if the client uses JNDI to lookup an object that exists in a
separate JVM, it does load balancing and failover properly. Alternatively, if
client uses same JVM to lookup an object in failover case, we are encountering
application specific error. I just need to know what makes difference when you
lookup an object(RMI) from same JVM and separate JVM.
Any and all help appreciated,
-SenthilNo one?
-
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
gokulHi,
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 -
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
-
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
- sanjaywhen 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 -
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 -
I am using Jackrabbit Repository (jcr's implementation) as backend in my Web Appl.Whose data persists on Oracle Database. To make connection with Oracle database jackrabbit provide provision of JNDI Lookup to read the data source defined in WAS (using WAS 8.0.0.4 as App Server).
I am able to perform JNDI Lookup everywhere in my application,But in a flow where i am creating a Thread using Java Concurrent Api and insidethread's call() method when I am trying for JNDI Look following exception occurs –
[8/20/13 10:57:35:163 IST] 000000dd System Out O ERROR 20-08 10:57:35,163 (DatabaseFileSystem.java:init:209) failed to initialize file system
javax.jcr.RepositoryException: JNDI name not found: java:comp/env/jdbc/ofsds
at org.apache.jackrabbit.core.util.db.ConnectionFactory.getJndiDataSource(ConnectionFactory.java:295)
at org.apache.jackrabbit.core.util.db.ConnectionFactory.createDataSource(ConnectionFactory.java:233)
at org.apache.jackrabbit.core.util.db.ConnectionFactory.getDataSource(ConnectionFactory.java:166)
at org.apache.jackrabbit.core.fs.db.DbFileSystem.getDataSource(DbFileSystem.java:226)
at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.init(DatabaseFileSystem.java:190)
at org.apache.jackrabbit.core.config.RepositoryConfigurationParser$6.getFileSystem(RepositoryConfigurationParser.java:1057)
at org.apache.jackrabbit.core.config.RepositoryConfig.getFileSystem(RepositoryConfig.java:911)
at org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:285)
at org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:605)
at org.apache.jackrabbit.core.TransientRepository$2.getRepository(TransientRepository.java:232)
at org.apache.jackrabbit.core.TransientRepository.startRepository(TransientRepository.java:280)
at org.apache.jackrabbit.core.TransientRepository.login(TransientRepository.java:376)
at com.mmpnc.icm.server.repository.RepositoryStartupService.newSession(RepositoryStartupService.java:408)
at com.mmpnc.icm.server.repository.RepositoryStartupService.newSession(RepositoryStartupService.java:355)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:28)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:44)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107)
at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:166)
at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:102)
at com.mmpnc.icm.server.repository.RepositoryStartupService_$$_javassist_1.newSession(RepositoryStartupService_$$_javassist_1.java)
at com.mmpnc.icm.server.repository.ICMHouseKeepingSessionManager.create(ICMHouseKeepingSessionManager.java:37)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:28)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:77)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:44)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107)
at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:166)
at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:102)
at com.mmpnc.icm.server.repository.ICMHouseKeepingSessionManager_$$_javassist_8.create(ICMHouseKeepingSessionManager_$$_javassist_8.java)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:138)
at org.jboss.seam.Component.callComponentMethod(Component.java:2171)
at org.jboss.seam.Component.callCreateMethod(Component.java:2094)
at org.jboss.seam.Component.newInstance(Component.java:2054)
at org.jboss.seam.Component.getInstance(Component.java:1948)
at org.jboss.seam.Component.getInstance(Component.java:1910)
at org.jboss.seam.Component.getInstance(Component.java:1904)
at org.jboss.seam.Component.getInstanceInAllNamespaces(Component.java:2271)
at org.jboss.seam.Component.getValueToInject(Component.java:2223)
at org.jboss.seam.Component.injectAttributes(Component.java:1663)
at org.jboss.seam.Component.inject(Component.java:1481)
at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:61)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:44)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107)
at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:166)
at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:102)
at com.mmpnc.icm.server.repository.ICMHouseKeepingRepository_$$_javassist_7.create(ICMHouseKeepingRepository_$$_javassist_7.java)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:138)
at org.jboss.seam.Component.callComponentMethod(Component.java:2171)
at org.jboss.seam.Component.callCreateMethod(Component.java:2094)
at org.jboss.seam.Component.newInstance(Component.java:2054)
at org.jboss.seam.Component.getInstance(Component.java:1948)
at org.jboss.seam.Component.getInstance(Component.java:1910)
at org.jboss.seam.Component.getInstance(Component.java:1904)
at org.jboss.seam.Component.getInstanceInAllNamespaces(Component.java:2271)
at org.jboss.seam.Component.getValueToInject(Component.java:2223)
at org.jboss.seam.Component.injectAttributes(Component.java:1663)
at org.jboss.seam.Component.inject(Component.java:1481)
at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:61)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:44)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107)
at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:166)
at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:102)
at com.mmpnc.icm.server.repository.ICMHouseKeepingManager_$$_javassist_6.create(ICMHouseKeepingManager_$$_javassist_6.java)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
at java.lang.reflect.Method.invoke(Method.java:611)
at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:138)
at org.jboss.seam.Component.callComponentMethod(Component.java:2171)
at org.jboss.seam.Component.callCreateMethod(Component.java:2094)
at org.jboss.seam.Component.newInstance(Component.java:2054)
at org.jboss.seam.Component.getInstance(Component.java:1948)
at org.jboss.seam.Component.getInstance(Component.java:1910)
at org.jboss.seam.Component.getInstance(Component.java:1904)
at org.jboss.seam.Component.getInstance(Component.java:1899)
at com.mmpnc.icm.server.concurrent.PerformCloseTask.call(PerformCloseTask.java:136)
at com.mmpnc.icm.server.concurrent.PerformCloseTask.call(PerformCloseTask.java:1)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:314)
at java.util.concurrent.FutureTask.run(FutureTask.java:149)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:897)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:919)
at java.lang.Thread.run(Thread.java:770)
Caused by:
javax.naming.ConfigurationException: A JNDI operation on a "java:" name cannot be completed because the server runtime is not able to associate the operation's thread with any J2EE application component. This condition can occur when the JNDI client using the "java:" name is not executed on the thread of a server application request. Make sure that a J2EE application does not execute JNDI operations on "java:" names within static code blocks or in threads created by that J2EE application. Such code does not necessarily run on the thread of a server application request and therefore is not supported by JNDI operations on "java:" names. [Root exception is javax.naming.NameNotFoundException: Name comp/env/jdbc not found in context "java:".]
at com.ibm.ws.naming.java.javaURLContextImpl.throwExceptionIfDefaultJavaNS(javaURLContextImpl.java:522)
at com.ibm.ws.naming.java.javaURLContextImpl.throwConfigurationExceptionWithDefaultJavaNS(javaURLContextImpl.java:552)
at com.ibm.ws.naming.java.javaURLContextImpl.lookupExt(javaURLContextImpl.java:481)
at com.ibm.ws.naming.java.javaURLContextRoot.lookupExt(javaURLContextRoot.java:485)
at com.ibm.ws.naming.java.javaURLContextRoot.lookup(javaURLContextRoot.java:370)
at org.apache.aries.jndi.DelegateContext.lookup(DelegateContext.java:161)
at javax.naming.InitialContext.lookup(InitialContext.java:436)
at org.apache.jackrabbit.core.util.db.ConnectionFactory.getJndiDataSource(ConnectionFactory.java:280)
... 114 more
Caused by:
javax.naming.NameNotFoundException: Name comp/env/jdbc not found in context "java:".
at com.ibm.ws.naming.ipbase.NameSpace.getParentCtxInternal(NameSpace.java:1969)
at com.ibm.ws.naming.ipbase.NameSpace.retrieveBinding(NameSpace.java:1376)
at com.ibm.ws.naming.ipbase.NameSpace.lookupInternal(NameSpace.java:1219)
at com.ibm.ws.naming.ipbase.NameSpace.lookup(NameSpace.java:1141)
at com.ibm.ws.naming.urlbase.UrlContextImpl.lookupExt(UrlContextImpl.java:1436)
at com.ibm.ws.naming.java.javaURLContextImpl.lookupExt(javaURLContextImpl.java:477)
... 119 moreOkay "damorgan", you seem to have me confused with a newbie. All I'm posting is the info that I got from my Sys Admin on the fix to my problem I encountered when trying to install Oracle 11g (11.2.0.0) on Red Hat Linux Enterprise 5. Since we're mouting onto an NFS, these are the steps he took. I'm not trying to "hide" information or post as little as possible. What other info do you want? I don't know what you are referring to when you mention "Filer, make, model, software version"? Please elaborate. I was just trying to post to others that may have encountered this problem, and I get somewhat attacked by you. I don't assume anyone can read my mind (especially you).
-
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 a specific server node
Hi experts
I am facing the following issue, we are loading data from ECC tables on PI JAVA memory to improve performance at runtime, this is done by a JCO,
it works fine within one Java node. But when we tested it in Productive system (with 2 java nodes) it failed because data is stored in just one Java node, so if the message does not go through
that node it does not find that data.
This is part ofe the code from the UDF where we are loading data to java memory:
props.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY, "com.sap.engine.services.jndi.InitialContextFactoryImpl");
* props.put(javax.naming.Context.PROVIDER_URL, "sapms://localhost:8110 ");*
* props.put("domain", "true");*
And this is part of the code from the UDF where we are getting data from memory
javax.naming.Context ctx = null;
* java.util.Hashtable props = new java.util.Hashtable(1);*
* props.put("domain", "true");*
* props.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY, "com.sap.engine.services.jndi.InitialContextFactoryImpl");*
props.put(javax.naming.Context.PROVIDER_URL, "sapms://localhost:8110");
Can someone give me some light about how to send data to both nodes or how to do the data lookup into a specific node??
Thanks in advanced.
EmmanuelHi,
I guess what you are trying to achieve is to build a cache of ECC data in PI memory. In this case you have to maintain local cache of the data on each server node. Hopefully the amount of memory required will not impact the system stability.
Regarding the lookup of different server node, although it is technically possible, you need to bind a remote object in the JNDI and use costly remote communication to transfer the data between the server nodes.
I guess you also have to think of some kind of update / eviction strategy for your cache.
Hope this helps!
Best Regards,
Dimitar -
Using external LDAP server for WL JNDI lookups
I'm trying to find out if it is possible to re-direct JNDI calls to the WL
server to an external LDAP server. I know you can install an external LDAP
server for security purposes, but I would like to use an external LDAP
server to handle all JNDI lookups (like for JNDI EJB name location, etc.).
Is this possible?You typically need to use our JNDI store. We strongly recommend this for
performance reasons..
You can use the JNDI To LDAP bridge which is available from the sun web
site.
Michael Girdley
BEA Systems Inc
"Jack Archer" <[email protected]> wrote in message
news:[email protected]..
I'm trying to find out if it is possible to re-direct JNDI calls to the WL
server to an external LDAP server. I know you can install an external LDAP
server for security purposes, but I would like to use an external LDAP
server to handle all JNDI lookups (like for JNDI EJB name location, etc.).
Is this possible? -
Local jndi lookup - present in 1 appln, lookup in 2nd appln (same server)
Hi,
I have deployed 2 applications ( A.ear, B.ear ) on the same server.
There is ejb( has only local interface no remote interface ) which is present in A.ear.
Now I want to do a local jndi lookup of the ejb in 2nd application (B.ear )
Can we do this in weblogic ? Any ideas
I have an annotation like this in the ejb :
@Stateless(name = "DisConfigManager", mappedName = "DisConfigManagerImpl")
@Local
Regards,
HarshaHarsha,
I'm not very knowledgeable on granular details of the EJB specification, but I don't think local ejbs are accessible to other applications.
Consider this snippet from this old OReilly link:
http://onjava.com/pub/a/onjava/2004/11/03/localremote.html
Before you start running to implement local client view into your application, you need to be aware of some restrictions. Local client view can only be accessed:
When enterprise beans are packaged within the same EJB-JAR package.
When enterprise beans are packaged within different EJB-JAR packages, but everything is still packaged within the same application's EAR package.
When a web component in a WAR file is packaged within the same application's EAR package.
Local client view cannot be accessed:
When an EJB or web component is packaged in a different application's EAR packages.
When a web component is deployed in a web container, and EJBs are deployed in an EJB container, and these containers are separated (even if they are running on the same machine). -
How to write the jndi lookup for ejb using oc4j server in jdeveloper
Hi All,
i am new to the JDeveloper. i want to develop the session bean in JDeveloper using the OC4J server. how to write the jndi lookup in cllient. what are the xml files need to deploy the application. where can i mention the JNDI name in xml file. so please provide the information as soon as possible.
regards
ramThere is quite in-depth information in the Enterprise JavaBeans Developer's Guide.
Section 2 (Understanding EJB Application Development) explains the xml files needed and Section 29 (Accessing an EJB from a Client) explains how to do a JNDI lookup.
Hope this helps.
Maybe you are looking for
-
Can Apple reset and/or find Apple ID information?
My husband and I share same iTunes account attached to the same Apple ID that he uses for iCloud. We created another Apple ID for a 2nd iCloud for me to back up my phone. my phone was having issues so I backed it up to the cloud and erased it back
-
subject pretty much sums it up. i need to remove the drive and pull the data from it using another pc. is there an adapter, usb or otherwise, that fits that drive? Is it microsata? My mba is late 2011.
-
I got a new galaxy s4 but my text msg still going to my old iphone4
I got a new galaxy s4 but my text msg still going to my old iphone4
-
Hello, I have purchased a license of Adobe Acrobat Pro DC (Mac, Italian) but I can not install it. Error: failed installation, installer has encountered an error that prevented the installation. Contact the software manufacturer for assistance.
-
Netflix playback stops and dumps me back to app
I watch a lot of Netflix on my Apple TV (I binge watch) and once or twice while watching it, the streaming playback stops and I'm looking at the menu screen showing the first episode I've watched - if I'm more than one episode in. Sometimes I'm back