RMI-IIOP vs WL RMI performance
Hi,
We did some performance test of WebLogic RMI and under high load (500-1000
users), it is rather slow. It is even slower with an EJB interface. If we
were to used IIOP as the underlying transport protocol, will it improve?
Would you have any other suggestions for improving performance?
Thanks
MC
Hi,
Thanks for your reply.
What I am interested in is the performance of RMI where multiple clients
e.g. JSPs, all make requests to the same object, as that is what will happen
in real life. Benchmarking with a single multi-threaded JVM client was not
recommended - but it seems that JSP may be executed on a single
multi-threaded JVM client anyway, depending on the Web Server of course.
Currently, I don't understand how the server-server benchmarking that you
proposed would work so if you could elaborate on it, that would be great.
Thanks again,
MC
"Don Ferguson" <[email protected]> wrote in message
news:[email protected]..
Yes, increasing the thread count will definately help. And note also thata
WebLogic server has different default configuration values than a WebLogic
client, so if you want to benchmark server-server performance, you reallyneed
to use a server.
mcn wrote:
Hi Andy,
Indeed, I was testing using a single multi-threaded JVM client. However,
isn't that the case if I were to use a web server and have 500-1000
JSP's
invoking methods on the same object? What is the work around?
Also, I had the executeThreadCount at the default value of 15. Willdoubling
it help?
Thanks
MC
"Andy Piper" <[email protected]> wrote in message
news:[email protected]..
"mcn" <[email protected]> writes:
We did some performance test of WebLogic RMI and under high load
(500-1000
users), it is rather slow. It is even slower with an EJB interface.
If
we
were to used IIOP as the underlying transport protocol, will it
improve?
Would you have any other suggestions for improving performance?It is likely that you have some config issue (heap size, number of
threads etc) since RMI is known to scale pretty well. Using IIOP will
not improve things. Also make sure you are not making the classic
mistake of invoking from a single multi-threaded JVM client since this
will multiplex all calls over the same connection.
andy
Similar Messages
-
RMI Performance Comp. with Forte
Hi All,
I know that this topic has been discussed on the list
already, but I would like to find out whether the
current state of Sun's RMI implementation is like
I imagine it, and I want to compare with our Forte
Service objects too. Basically, these seem to be
issues that negatively affect performance,
1. A thread is created on the server per request, and
there is no way to change this easily (i.e. reuse
threads from a pool)
2. Each call opens a new socket.
In particular, does it make sense to replace RMI with
CORBA for increased performance and scalability? Can a
PC-based server handle loads of about 1000 remote
calls per second (considering the overhead imposed by
RMI/other communication methods only)? or Shall we
compare Forte against RMI.
Thankx,
BabuOkay,
A method invocation (or function call or procedure call or whatever) is
always a synchronous call. This means, you ask the service to do something
and wait for the function to complete, optionally with return values. It is
possible, that within the method, a separate thread is started, that
continues after the method is completed, but that doesn't change the
mechanism that a method invocation is a synchronous call.
In Forte, it is possible to start a method as an asynchronous call, with the
"start task" command. In that case, the caller does not wait for the method
to complete and return values are not handled. If this method invocation
happens across a network (making it a Remote Method Invocation) then a
socket will be opened when the call is made and closed immediately after. It
does solve the one-socket-per-caller problem, but not the
one-thread-per-caller problem. Also, it does remove the possibility of
receiving return values.
If you want to keep using method invocations as synchronous calls with
return values, but you also want to share resources like sockets and
threads, then you have to use TP-monitoring concepts. You must have a two
way, asynchronous call with an additional parameter. This means, the client
does a single, brief call that re-uses an existing thread and immediately
frees the socket it used. The client passes all required parameters and one
additional parameter to identify itself. In Forte, this would be a reference
to an anchored object on the client-partition. Then the client waits
(possibly blocks). The server completes the request and locates the client
that sent the request. The server invokes a method on the client, informing
that the request was handled. The server now also passes all return values.
The client exits its wait-state and continues.
In Forte (even if you use other mechanisms to hook into Forte), every call
still is a separete thread. If you wish to re-use existing threads, this
must be done using events. So, a client invokes a method asynchronously
(using "start task") and waits. The server start a new thread and posts an
event. Each existing thread is either idle in an event loop or busy handling
a previous event. The new event is added to the queue of all event loops and
the original thread is terminated (the socket was already freed). One event
loop of the thread-pool will be the first one to respond to the event, mark
this somewhere (maybe using mutex) and start handling it. All the others
will eventually respond to the event as well, but will be able to see that
the event is already being handled and ignore it.
This does introduce overhead and it makes your application more complex, but
it also prevents you running out of resources.
Now, the real issue is not the amount of calls per second, but a combination
of calls per second and seconds to complete the call. Using these two
numbers, you can calculate the amount of tasks the server has to be handling
simultaneously at any given time (average). Using the above described
technique you can handle intermittent, large loads, because if there are
more requests than available resources (threads) at any given time, the
requests will simply be put in a queue and handled later. However, if the
over-load continues for a prolonged period of time, the queue will simply
grow and grow and grow until the partition crashes and all queued items will
be lost.
Then it is time for load-balancing. You install several additional servers
and run a serverprocess on each of these machines. And you use a router that
distributes calls across the different serverprocesses. Forte has built-in
mechanisms for that, that work reasonably well. However, if the amount of
calls per second is so high, that even the short time it takes the router to
relay the request still is too long, so that the router runs out of
resources, then you have to use more complex models, for which Forte doesn't
have any ready-to-use solutions. But neither does CORBA or Java I believe.
One more thing. If you combine the above described mechanism to free sockets
as quickly as possible and use Forte loadbalancing, you might solve all your
problems. Just install 6 overloaded server processes. This results in 6
processes times 256 threads per process equals 1536 simultaneous tasks. If
each task is an asynchronous method invocation that immediately frees its
socket, then you never block you're whole server by using all sockets and
you're still able to do handle 1536 requests simultaneously.
Remember, if you have such a large load of calls per second, that all pass
through the same machine (router) then you'll run into hardware limitations
and no software solution can fix that. You have to find a mechanism to
distribute calls across different nodes without using a single router. For
example, cluster clients and have a single server node per cluster.
Pascal.
-----Original Message-----
From: Babu Raj [SMTP:ibcsmartboyyahoo.com]
Sent: Friday, March 24, 2000 3:42 PM
To: Rottier, Pascal
Cc: kamranaminyahoo.com
Subject: RE: (forte-users) RMI Performance Comp. with Forte
Hi,
I believe in CORBA, ORB maintains the same
connection ( Same Socket) for multiple calls, on the
same Servant object, unless otherwise its ONEWAY call.
But RMI uses the same strategy as Forte, I'm not sure
either on this. Thats the reason, i asked the previous
question.
Thankx,
Babu
--- "Rottier, Pascal" <Rottier.Pascalpmintl.ch>
wrote:
How are CORBA and RMI different then Forte (one
socket and one thread per
call)?
-----Original Message-----
From: Babu Raj [SMTP:ibcsmartboyyahoo.com]
Sent: Friday, March 24, 2000 3:18 PM
To: kamranaminyahoo.com
Subject: (forte-users) RMI Performance Comp. withForte
Hi All,
I know that this topic has been discussed on thelist
already, but I would like to find out whether the
current state of Sun's RMI implementation is like
I imagine it, and I want to compare with our Forte
Service objects too. Basically, these seem to be
issues that negatively affect performance,
1. A thread is created on the server per request,and
there is no way to change this easily (i.e. reuse
threads from a pool)
2. Each call opens a new socket.
In particular, does it make sense to replace RMIwith
CORBA for increased performance and scalability?Can a
PC-based server handle loads of about 1000 remote
calls per second (considering the overhead imposedby
RMI/other communication methods only)? or Shall we
compare Forte against RMI.
Thankx,
Babu
For the archives, go to:
http://lists.xpedior.com/forte-users and use
the login: forte and the password: archive. Tounsubscribe, send in a new
email the word: 'Unsubscribe' to:forte-users-requestlists.xpedior.com
For the archives, go to:
http://lists.xpedior.com/forte-users and use
the login: forte and the password: archive. To
unsubscribe, send in a new
email the word: 'Unsubscribe' to:
forte-users-requestlists.xpedior.com
For the archives, go to: http://lists.xpedior.com/forte-users and use
the login: forte and the password: archive. To unsubscribe, send in a new
email the word: 'Unsubscribe' to: forte-users-requestlists.xpedior.com -
Hi, i should make a question, for the performaces of RMI.
I have created a software completely in Java and SQL. It's a software client-server, and it works with socket tcp (java.net). Now i'm doing the tests, but i view that a client for find the server wait 15 sec. If i want to use a "select" in mySQL (on server), i must wait too time. I thought to change my tecnology from Socket TCP to RMI, to have better performance.
But, before to do 5000 job's hours, i would like to know if RMI can resolve my problems.
Anyone knows that?
thank's and sorry for my english :-)
nickponicogenerally, it wont make much difference...
im guessing that the bottleneck lies on the acessing / querying the database, in wich case changing to RMI (or CORBA or whatever) wont make any difference...
keep in mind that just changing the underlying technology wont have much effect, now that you have it working under plain socket (RMI may present some improvements, but it will be overwhelmed by huge amount of data transfered, etc)...
cheers -
Is there a limit on the number of simultaneous remote calls that a RMI server can handle ???
Well, here's the scenario. I'm running a RMI server on linux Red hat 9.0 with kernel 2.4.21. The client calls it's method, responding to which, the server does some processing regarding the linux kernel. The processing is nothing but just reading some values through Runtime.exec(). These raw values are converted into objects, verified, and then some values are sent to the client.
The client executes the method every 3 seconds. That's one point that may be causing problems. What do u think ? Now what goes wrong is that after a few hours the system running the RMI server hangs. That's what I wanted to know. Why does the server hang ? There no such thing in the code that might play tricks with the system. I think it's the RMI that's causing problems. And if I run the X windows server, it hangs very quickly. Please let me know what could be the possible reasons regarding RMI. I shall be thakful -
I am having issues with RMI performance. I have a simple test set up between two machines using RMI to send and return arbitrary objects using a single method. Here is a simplified version of the code I am using.
The dispatchCommand method is invoked on the following UnicastRemoteObject class, which uses the SocketFactory classes:
public class GatewayImp extends UnicastRemoteObject
implements GatewayHandle_Gateway {
public GatewayImp (int port) throws Exception {
super(sslPort,
new CiRMIClientSocketFactory(),
new CiRMIServerSocketFactory());
public Object dispatchCommand(Command c) throws RemoteException {
//Command is a POJO object
I have implementedthe createSocket methods in RMIClientSocketFactory and RMIServerSocketFactory as follows:
public class CiRMIServerSocketFactory extends java.rmi.server.RMISocketFactory
implements Serializable {
public ServerSocket createServerSocket(int port) throws IOException {
return new ServerSocket(port);
and
public class CiRMIClientSocketFactory extends java.rmi.server.RMISocketFactory
implements Serializable {
public Socket createSocket(String host, int port) throws IOException {
return new Socket(host, port);
}The issue is that RMI appears to perform poorly, issuing only about 5-20 method calls per second even when tested on a single machine (512MB, Linux). I also ran it through a profiler and found that RMI socket creation was using most of the CPU cycles. I have tried various techniques I have seen, such as reducing client socket creation by implementing the hashCode method on the SocketFactory but the performance is the same. Since the createSocket methods are called by the JVM, I would like to know whether there are any system configuration parameters that could be used to reduce the RMI overhead?Thank you. I have tried this by configuring the /etc/hosts and disabling all network connections, and it has improved the performance by about 30%.
I would also like to know whether there are any sun.rmi or java.rmi parameters which are likely to lead to significant improvements in performance, or if there is somewhere I can find documentation on the subject. I have so far tried
-Djava.rmi.server.hostname=127.0.0.1
-Djava.rmi.server.disableHttp=true
-Dsun.rmi.log.debug=false
as well as programatically setting the following socket settings for the socket that is created by the socket factory:
socket.setSendBufferSize(1024*1025);
socket.setReceiveBufferSize(1024*1025);
socket.setReuseAddress(true);
socket.setTcpNoDelay(true);
which have led to a slight increase in performance.
Also, are there any test results measuring RMI calls per second available, which I could use as a benchmark?
Many thanks in advance. -
Using RMI to synchronize two databases
Hello
I have studied Java for some time, but never had
the opportunity to work in a "real project", but
now I have something to do...
I have the following situation: two offices
of a company, the central one running SQL Server
database and other running Oracle, must change
information, reading data from Oracle and saving in
SQLServer and vice-versa. The programs should be
running all day, checking at specified periods of
time if there is some information to be updated
in any database.
The offices are phisically far, so it should be
used Internet to make the connection (both sites
are connected to Internet 24h).
I was wondering on using the Java RMI technology
to achieve this. I have read the official Sun
documentation about RMI and some articles, and I
found it very interesting, and pretty easy to
implement.
But I have some "real world" questions:
- Is RMI the ideal solution for this problem, or
there is some newer or more adequate one?
- At first it would be a small amount of data
to be synchronized, but if it grows a lot or
more offices are to be connected, is RMI performance
good? (is it quick?)
- About security - is RMI secure? I mean, I think
the server program should be listening a port in a
IP address open to ALL the internet... How safe is
the user authentication, or this is responsability of
the application?
- What is the relationship between RMI and proxies,
firewalls etc? Are they compatible?
- XML is something to think about using for this
application, or it have nothing to do to the job?
The initial option was using a Microsoft solution
to make this application :(, but I would be very happy
if I could use Java ;) , but I have to have the
adequate technical base to suggest it...
So, any help would be very welcome!
Luis CabralHere's a set of (some) answers based on my experience (which is NOT synchronizing two databases, but on synchronizing sets of files across a tree of file servers.)
Hello
1. It sounds like two databases must be cross-synchronized. You didn't say what the platforms were, but if they are mixed, then java is a positive choice.
2. Java rmi is fine for doing this kind of work. However I can't give you any performance guarantees. You probably need to get some fine requirements and write some model programs.
3. YOU are responsible for security. RMI gives you connectability; you have to develop some kind of cross-authentication procedure as part of you application.
4. To work over the internet, you will have to develop some way through firewalls.
o If the two sites use "Virtual private networks", then both the security issue and the firewall issue are mostly solved for you.
o Otherwise, and maybe even with vpn, you will have to do a little bit of work to use fixed port numbers. (The way rmi works is that there is a listener at a fixed port which will let a remote program "look up" a local object; after that, communication takes place object-object over a randomly-assigned port.) It takes about a dozen lines of code to make this work.
5. I don't think XML has anything to do with this problem. It MAY help you if you have serious data conversion issues. I hear it's a pig.
Finally, an application item that may or may not be an issue: Two databases, two platforms == possible character set conversion problems. -
Comparing performance of CORBA/RMI/RMI-IIOP
I would like to compare CORBA, RMI and RMI-IIOP.
Is there any s/w available, pref open source, in java to perforam benchmarking in some or all of the three.
Anything which also supports C++ would be a plus.
I know there is some data already available, but I would like to be able to perform my own tests on my platform. prob linux and linux cluster.CORBA is supported by Windows machines (Windows XP/2000 as I know of it) and other APIs may be bought or included in some enterprise applications.
RMI and CORBA are about as fast as each other. RMI-IIOP is slower then RMI and CORBA, however, it can sometimes go a little faster depending on deployment and environment. -
A right communication mechanism
Hi, all,
Here is a situation for a client/server application:
the server coded in C++;
a client is needed, but not browser since its UI is not rich enough.
I'm thinking about to have Java client distributed and launched by Java Web Start. The rest of question is the communication mechanism.
The followings are the choices I can come out:
socket - go through a firewall? need JNI on the server side?
RMI - performance? need JNI on the server side?
http protocol - need Java web server. JNI on the server side.
SOAP - Is it suitable for a non-complex application?
Any suggestions?
Thanks in advance.The answer to your question depends on the following:
1. How complex is the C++ server's API?
2. Is the API DCOM, CORBA, what?
3. Is the server behind a firewall? Is it exclusively intranet, or should it be exposed externally?
socket - go through a firewall? need JNI on the server
side? Socket are always "fine" -- they are the foundation for most RPC protocols. But you would have to roll your own protocol, which may or may not be satisfactory depending on the complexity of your API i.e., you probably need client-side Java stubs of some sort representing the interface[s] in your server API as well as Java versions of classes used for the arguments in the API. The stubs would be responsible for marshalling calls to the server -- serializing the arguments e.g., in XML. The server, then, would need to process the socket calls typically using skeleton API classes to deserialize the args and call the existing APIs. Of course, SOAP much of this nastiness already and is also firewall friendly -- HTTP.
RMI - performance? need JNI on the server side?RMI/IIOP is fine if you don't mind CORBA and aren't concerned about firewall issues.
http protocol - need Java web server. JNI on the
server side.Unless your API is terribly simple, use SOAP if you are considering HTTP...
SOAP - Is it suitable for a non-complex application?Unless your server is and always will be internal/intranet-only, SOAP is probably the most reasonable solution. -
Help!!!I can not pass the Logger example of Rmi-iiOP
I am using the j2sdk1.4.0 and j2sdkee1.3.1 as back ground.And use Win2000
I try the rmi-iiop example given by Sun.But it doesn't work.
Firstly , compile Logger.java LoggerHome.java LogMessage.java LoggerEJB.java to class
javac -classpath "c:\j2sdkee1.3.1\lib\j2ee.jar;c:\wytestejb\" Logger.java LoggerHome.java LogMessage.java LoggerEJB.java
that was ok.
Then I draw idl from that just like
rmic -idl -noValueMethods -classpath "c:\j2sdkee1.3.1\lib\j2ee.jar;c:\wytestejb\" Logger LoggerHome
then I got Logger.idl LoggerHome.idl javax\ejb\...idl java\lang\...idl
After that I create one directory named client.copying all idl file into it,I transfered idl to java using
idlj -i C:\j2sdk1.4.0\lib -i c:\wytestejb\client -i C:\j2sdkee1.3.1\lib -emitAll -fclient Logger.idl
idlj -i C:\j2sdk1.4.0\lib -i c:\wytestejb\client -i C:\j2sdkee1.3.1\lib -emitAll -fclient LoggerHome.idl
Then I got *.java such as Logger.java LoggerHome.java .....java java\lang\***.class javax\ejb\****.class
I put the LogClient.java in this directory and compile *.java like
C:\wytestejb\client>javac -classpath "c:\j2sdkee1.3.1\lib\j2ee.jar;c:\wytestejb\
client;c:\j2sdk1.4.0\lib;c:\j2sdk1.4.0\bin" *.java
And I got
c:\wytestejb\client\java\lang\_Exception.java:23: cannot resolve symbol
symbol : method _read (org.omg.CORBA.portable.InputStream)
location: class java.lang.Throwable
super._read (istream);
^
c:\wytestejb\client\java\lang\_Exception.java:28: cannot resolve symbol
symbol : method _write (org.omg.CORBA.portable.OutputStream)
location: class java.lang.Throwable
super._write (ostream);
^
LogClient.java:20: cannot resolve symbol
symbol : method println (java.lang.String)
location: interface java.io.PrintStream
System.out.println("Looking for: " + loggerHomeURL);
^
LogClient.java:38: cannot resolve symbol
symbol : method println (java.lang.String)
location: interface java.io.PrintStream
System.out.println("Logging...");
^
LogClient.java:47: cannot resolve symbol
symbol : method println (java.lang.String)
location: interface java.io.PrintStream
System.out.println("Done");
^
LogClient.java:59: cannot resolve symbol
symbol : method println (java.lang.String)
location: interface java.io.PrintStream
System.out.println("Args: corbaname URL of LoggerHome");
^
LogClient.java:66: cannot resolve symbol
symbol : method printStackTrace ()
location: class java.lang.Throwable
t.printStackTrace();
^
7 errors
C:\wytestejb\client>By the way
My java file is as
Logger.java
The file Logger.java is the enterprise bean's remote interface, and as such, it extends EJBObject . A remote interface provides the remote client view of an EJB object and defines the business methods callable by a remote client.
//Code Example 1: Logger.java
package ejbinterop;
import javax.ejb.EJBObject;
import java.rmi.RemoteException;
* Accepts simple String log messages and prints
* them on the server.
public interface Logger extends EJBObject
* Logs the given message on the server with
* the current server time.
void logString(String message) throws RemoteException;
LoggerHome.java
The file LoggerHome.java extends EJBHome . The EJBHome interface must be extended by all EJB component's remote home interfaces. A home interface defines the methods that allow a remote client to create, find, and remove EJB objects, as well as home business methods that are not specific to an EJB instance.
//Code Example 2: LoggerHome.java
package ejbinterop;
import java.rmi.RemoteException;
import javax.ejb.EJBHome;
import javax.ejb.CreateException;
public interface LoggerHome extends EJBHome
Logger create() throws RemoteException, CreateException;
LoggerEJB.java
The file LoggerEJB.java contains the code for a session bean. A session bean is an enterprise bean that is created by a client and that usually exists only for the duration of a single client-server session. A session bean performs operations such as calculations or accessing a database for the client. In this example, the enterprise bean accepts simple String log messages from the client and prints them on the server.
//LoggerEJB.java
package ejbinterop;
import javax.ejb.*;
import java.util.*;
import java.rmi.*;
import java.io.*;
* Accepts simple String log messages and prints
* them on the server.
public class LoggerEJB implements SessionBean {
public LoggerEJB() {}
public void ejbCreate() {}
public void ejbRemove() {}
public void ejbActivate() {}
public void ejbPassivate() {}
public void setSessionContext(SessionContext sc) {}
* Logs the given message on the server with
* the current server time.
public void logString(String message) {
LogMessage msg = new LogMessage(message);
System.out.println(msg);
LogMessage.java
The file LogMessage.java takes the current date and time, creates a formatted String showing the message, and prints the message to the server.
//LogMessage.java
package ejbinterop;
import java.io.Serializable;
import java.util.Date;
import java.text.*;
* Simple message class that handles pretty
* printing of log messages.
public class LogMessage implements Serializable
private String message;
private long datetime;
* Constructor taking the message. This will
* take the current date and time.
public LogMessage(String msg) {
message = msg;
datetime = (new Date()).getTime();
* Creates a formatted String showing the message.
public String toString() {
StringBuffer sbuf = new StringBuffer();
DateFormat dformat
= DateFormat.getDateTimeInstance(DateFormat.MEDIUM,
DateFormat.LONG);
FieldPosition fpos = new
FieldPosition(DateFormat.DATE_FIELD);
dformat.format(new Date(datetime), sbuf, fpos);
sbuf.append(": ");
sbuf.append(message);
return sbuf.toString();
//Code Example: LogClient.java
package ejbinterop;
import java.rmi.RemoteException;
import javax.rmi.*;
import java.io.*;
import javax.naming.*;
import javax.ejb.*;
* Simple Java RMI-IIOP client that uses an EJB component.
public class LogClient
* Given a corbaname URL for a LoggerHome,
* log a simple String message on the server.
public static void run(String loggerHomeURL)
throws CreateException, RemoveException,
RemoteException, NamingException
System.out.println("Looking for: " + loggerHomeURL);
// Create an InitialContext. This will use the
// CosNaming provider we will specify at runtime.
InitialContext ic = new InitialContext();
// Lookup the LoggerHome in the naming context
// pointed to by the corbaname URL
Object homeObj = ic.lookup(loggerHomeURL);
// Perform a safe downcast
LoggerHome home
= (LoggerHome)PortableRemoteObject.narrow(homeObj,
LoggerHome.class);
// Create a Logger EJB reference
Logger logger = home.create();
System.out.println("Logging...");
// Log our message
logger.logString("Message from a Java RMI-IIOP client");
// Tell the application server we won't use this
// EJB reference anymore
logger.remove();
System.out.println("Done");
* Simple main method to check arguments and handle
* exceptions.
public static void main(String args[])
try {
if (args.length != 1) {
System.out.println("Args: corbaname URL of LoggerHome");
System.exit(1);
LogClient.run(args[0]);
} catch (Throwable t) {
t.printStackTrace();
System.exit(1); -
Kill RMI/IIOP Worker session
Hi guys,
We have a problem when some sessions of type RMI/IIOP are hanging. The performance of J2EE server decrease.
Are there any posibilities to kill a RMI/IIOP session when they are hanging?
Thank you and best regards
IváDear Ivá,
Hope you are doing good.
You can do this via telnet:
a) Telnet hostname Port (http port+8)
b) Logon with administrator Id
c) execute command >lsc ( it will list cluster elements)
d) exceute > jump cluster id ( replace cluster id from the
output of above command)
e) ADD DEPLOY
f) unlock_app sap.com/mss~exp (for example)
Refer to note 710966 for details.
Visual admin-> server-> services-> locking adapter also gives some info on the locks and how the can be deleted in critical cases.
For more info on telnet, check note 1715441.
Kind Regards,
Hemanth -
Rmi-iiop authentication and EJB
In WL6.1, I have an Ejb with secured methods. The (Swing) client application accesses the Ejb through rmi-iiop using the JDK1.3.1 Orb.
Unfortunately, it seems that the caller identity (which was supplied in the InitialContext lookup) is not propagated
to the server: any call to a secured method
fails with a CORBA NO_PERMISSION Exception.
Using the t3 protocol the program works fine, but that would require the 25Mb weblogic.jar on all clients, which is unattainable for us.
Any ideas how this situation can be corrected?
-Allard SiemelinkHello Allard,
My only suggestion (and you have probably looked at this already) would be to
use the Verbosetozip utility, refer to http://e-docs.bea.com/wls/docs61////adminguide/utils.html#1117405
for more information.
Kind Regards,
Richard Wallace
Senior Developer Relations Engineer
BEA Support.
Allard Siemelink <[email protected]> wrote:
In WL6.1, I have an Ejb with secured methods. The (Swing) client application
accesses the Ejb through rmi-iiop using the JDK1.3.1 Orb.
Unfortunately, it seems that the caller identity (which was supplied
in the InitialContext lookup) is not propagated
to the server: any call to a secured method
fails with a CORBA NO_PERMISSION Exception.
Using the t3 protocol the program works fine, but that would require
the 25Mb weblogic.jar on all clients, which is unattainable for us.
Any ideas how this situation can be corrected?
-Allard Siemelink -
Rmi-iiop: calling secured method on Ejb -- NO PERMISSION Exception
In WL6.1, I have an Ejb with secured methods. The (Swing) client application accesses the Ejb through rmi-iiop using the JDK1.3.1 Orb.
Unfortunately, it seems that the caller identity (which was supplied in the InitialContext lookup) is not propagated
to the server: any call to a secured method
fails with a CORBA NO_PERMISSION Exception.
Using the t3 protocol the program works fine, but that would require the 25Mb weblogic.jar on all clients, which is unattainable for us.
Any ideas how this situation can be corrected?
-Allard SiemelinkHi Allard,
Please pose this in the weblogic.developer.interest.rmi-iiop.
Thanks,
Allard Siemelink wrote:
In WL6.1, I have an Ejb with secured methods. The (Swing) client application accesses the Ejb through rmi-iiop using the JDK1.3.1 Orb.
Unfortunately, it seems that the caller identity (which was supplied in the InitialContext lookup) is not propagated
to the server: any call to a secured method
fails with a CORBA NO_PERMISSION Exception.
Using the t3 protocol the program works fine, but that would require the 25Mb weblogic.jar on all clients, which is unattainable for us.
Any ideas how this situation can be corrected?
-Allard Siemelink--
Apurb Kumar
Developer Relations Engineer
BEA Support -
RMI-IIOP client - CORBA Server
I already have a CORBA server in C++ which has already been written. I am trying to develop an RMI-IIOP client which would talk to this CORBA Server.
The CORBA server has several interfaces that I would like to use with my RMI-IIOP client. How do I proceed?? Can somebody give me an example of an RMI-IIOP client? Basically my question is: how do I take the IDL and build an RMI-IIOP client with it???Hello
I already have a CORBA server in C++ which has already
been written. I am trying to develop an RMI-IIOP
client which would talk to this CORBA Server.
The CORBA server has several interfaces that I would
like to use with my RMI-IIOP client. How do I
proceed?? Can somebody give me an example of an
RMI-IIOP client? Basically my question is: how do I
take the IDL and build an RMI-IIOP client with it???The steps to do are the following:
* Creating the Remote interface
* Using the rmic compiler to genarate the IDL and the client stub.
* Generating stub and skeleton of the C++ server using that IDL (the one you already made is no longer compatible)
* Bulding up the new C++ server
* Using a nameservice (tnameserver for example) and binding your server to that.
* Writing the RMI-IIOP client
I proceeded like this (using Visibroker 4.5 on the server side) and I was able to do it... but as you can see from my last post, I wasn't able to pass Strings from the client to the server.
Bye -
Does OC4J support RMI/IIOP connections ?
Hi,
I have only one question :
Does OC4J support IIOP connections ?
I'd like to connect as EJB client to OLAPService on Oracle9i server (CORBA object), but I can't.
Thanks in advanceThanks for your timely post Debu.
I would like to state that I read and followed the guides (same files as those ponted by the links you just provided) and tried this:
1. Sample J2EE Application using ORMI in OC4J Standalone (this works ok)
2. Same but now using ORMIS (this also works fine)
3. Tried same J2EE App using IIOP; took these steps:
3.1 commented out the rmi.xml security lines,
3.2 enabled ports in internal-settings.xml,
3.3 changed the jndi.properties - now using corbaname URL,
3.4 enabled the IIOP stub generation in the JVM settings at oc4j startup, and finally
3.5 deployed the EAR using the generateIIOP flag.
The result: the exception I posted above
4. Tried with IIOP/SSL, did these steps:
4.1 configured the keystore settings in both internal-settings.xml and ejb_sec.properties
4.2 and added <ior-security-config> config elements to orion-ejb-jar.xml.
The exception here is a little bit different:
client started...
In IIOPInitialContextFactory ..
In IIOPInitialContextFactory getInitialContext..
1/08/2006 07:07:10 PM com.sun.corba.ee.impl.legacy.connection.SocketFactoryConnectionImpl <init>
ADVERTENCIA: ORBUTIL.connectFailure
org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 201 completed: No
at com.sun.corba.ee.impl.logging.ORBUtilSystemException.connectFailure(ORBUtilSystemException.java:1739)
at com.sun.corba.ee.impl.logging.ORBUtilSystemException.connectFailure(ORBUtilSystemException.java:1757)
at com.sun.corba.ee.impl.legacy.connection.SocketFactoryConnectionImpl.<init>(SocketFactoryConnectionImpl.java:74)
at com.sun.corba.ee.impl.legacy.connection.SocketFactoryContactInfoImpl.createConnection(SocketFactoryContactInfoImpl.java:77)
at com.sun.corba.ee.impl.protocol.CorbaClientRequestDispatcherImpl.beginRequest(CorbaClientRequestDispatcherImpl.java:152)
at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.request(CorbaClientDelegateImpl.java:121)
at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.is_a(CorbaClientDelegateImpl.java:214)
at org.omg.CORBA.portable.ObjectImpl._is_a(ObjectImpl.java:112)
at org.omg.CosNaming.NamingContextHelper.narrow(NamingContextHelper.java:69)
at com.sun.jndi.cosnaming.CNCtx.setOrbAndRootContext(CNCtx.java:345)
at com.sun.jndi.cosnaming.CNCtx.initUsingCorbanameUrl(CNCtx.java:321)
at com.sun.jndi.cosnaming.CNCtx.initUsingUrl(CNCtx.java:247)
at com.sun.jndi.cosnaming.CNCtx.createUsingURL(CNCtx.java:85)
at com.sun.jndi.url.iiop.iiopURLContextFactory.getUsingURLIgnoreRest(iiopURLContextFactory.java:56)
at com.sun.jndi.url.iiop.iiopURLContextFactory.getUsingURL(iiopURLContextFactory.java:61)
at com.sun.jndi.url.iiop.iiopURLContextFactory.getObjectInstance(iiopURLContextFactory.java:34)
at oracle.j2ee.iiop.IIOPInitialContextFactory.getInitialContext(IIOPInitialContextFactory.java:76)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)
at javax.naming.InitialContext.init(InitialContext.java:219)
at javax.naming.InitialContext.<init>(InitialContext.java:175)
at hello.HelloClient.main(HelloClient.java:31)
Caused by: java.lang.RuntimeException: java.net.ConnectException: Connection refused: connect
at oracle.oc4j.corba.iiop.IIOPSSLSocketFactory.createSocket(IIOPSSLSocketFactory.java:398)
at com.sun.corba.ee.impl.legacy.connection.SocketFactoryConnectionImpl.<init>(SocketFactoryConnectionImpl.java:58)
... 19 more
Caused by: java.net.ConnectException: Connection refused: connect
at sun.nio.ch.Net.connect(Native Method)
at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:460)
at java.nio.channels.SocketChannel.open(SocketChannel.java:146)
at oracle.oc4j.corba.iiop.IIOPSSLSocketFactory.createSocket(IIOPSSLSocketFactory.java:389)
... 20 more
javax.naming.CommunicationException: Cannot connect to ORB [Root exception is org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 20
at com.sun.jndi.cosnaming.CNCtx.setOrbAndRootContext(CNCtx.java:362)
at com.sun.jndi.cosnaming.CNCtx.initUsingCorbanameUrl(CNCtx.java:321)
at com.sun.jndi.cosnaming.CNCtx.initUsingUrl(CNCtx.java:247)
at com.sun.jndi.cosnaming.CNCtx.createUsingURL(CNCtx.java:85)
at com.sun.jndi.url.iiop.iiopURLContextFactory.getUsingURLIgnoreRest(iiopURLContextFactory.java:56)
at com.sun.jndi.url.iiop.iiopURLContextFactory.getUsingURL(iiopURLContextFactory.java:61)
at com.sun.jndi.url.iiop.iiopURLContextFactory.getObjectInstance(iiopURLContextFactory.java:34)
at oracle.j2ee.iiop.IIOPInitialContextFactory.getInitialContext(IIOPInitialContextFactory.java:76)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:662)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)
at javax.naming.InitialContext.init(InitialContext.java:219)
at javax.naming.InitialContext.<init>(InitialContext.java:175)
at hello.HelloClient.main(HelloClient.java:31)
Caused by: org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 201 completed: No
at com.sun.corba.ee.impl.logging.ORBUtilSystemException.connectFailure(ORBUtilSystemException.java:1739)
at com.sun.corba.ee.impl.logging.ORBUtilSystemException.connectFailure(ORBUtilSystemException.java:1757)
at com.sun.corba.ee.impl.legacy.connection.SocketFactoryConnectionImpl.<init>(SocketFactoryConnectionImpl.java:74)
at com.sun.corba.ee.impl.legacy.connection.SocketFactoryContactInfoImpl.createConnection(SocketFactoryContactInfoImpl.java:77)
at com.sun.corba.ee.impl.protocol.CorbaClientRequestDispatcherImpl.beginRequest(CorbaClientRequestDispatcherImpl.java:152)
at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.request(CorbaClientDelegateImpl.java:121)
at com.sun.corba.ee.impl.protocol.CorbaClientDelegateImpl.is_a(CorbaClientDelegateImpl.java:214)
at org.omg.CORBA.portable.ObjectImpl._is_a(ObjectImpl.java:112)
at org.omg.CosNaming.NamingContextHelper.narrow(NamingContextHelper.java:69)
at com.sun.jndi.cosnaming.CNCtx.setOrbAndRootContext(CNCtx.java:345)
... 12 more
Caused by: java.lang.RuntimeException: java.net.ConnectException: Connection refused: connect
at oracle.oc4j.corba.iiop.IIOPSSLSocketFactory.createSocket(IIOPSSLSocketFactory.java:398)
at com.sun.corba.ee.impl.legacy.connection.SocketFactoryConnectionImpl.<init>(SocketFactoryConnectionImpl.java:58)
... 19 more
Caused by: java.net.ConnectException: Connection refused: connect
at sun.nio.ch.Net.connect(Native Method)
at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:460)
at java.nio.channels.SocketChannel.open(SocketChannel.java:146)
at oracle.oc4j.corba.iiop.IIOPSSLSocketFactory.createSocket(IIOPSSLSocketFactory.java:389)
... 20 more
NamingException: Cannot connect to ORB -
How to configure OC4J using RMI/IIOP with SSL
Any help?
I just mange configure the OC4J using RMI/IIOP but base on
But when I follow further to use RMI/IIOP with SSL I face the problem with: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
p/s: I use self generate keystore which should be ok as I can use it for https connection.
Any one can help?
Below is the OC4J log:
D:\oc4j\j2ee\home>java -Djavax.net.debug=all -DGenerateIIOP=true -Diiop.runtime.debug=true -jar oc4j.jar
05/02/23 16:43:16 ================ IIOPServerExtensionProvider.preInitApplicationServer
05/02/23 16:43:38 ================= IIOPServerExtensionProvider.postInitApplicationServer
05/02/23 16:43:38 ================== config = {SEPS={IIOP={ssl-port=5556, port=5555, ssl=true, trusted-clients=*, ssl-client-server-auth-port=5557, keystore=D:\\oc4j\\j2ee\\home\\server.keystore, keystore-password=123456, truststore=D:\\oc4j\\j2ee\\home\\server.keystore, truststore-password=123456, ClassName=com.oracle.iiop.server.IIOPServerExtensionProvider, host=localhost}}}
05/02/23 16:43:38 ================== server.getAttributes() = {threadPool=com.evermind.server.ApplicationServerThreadPool@968fda}
05/02/23 16:43:38 ================== pool: null
05/02/23 16:43:38 ====================== In startServer ...
05/02/23 16:43:38 ==================== Creating an IIOPServer ...
05/02/23 16:43:38 ========= IIOP server being initialized
05/02/23 16:43:38 SSL port: 5556
05/02/23 16:43:38 SSL port 2: 5557
05/02/23 16:43:43 com.sun.corba.ee.internal.iiop.GIOPImpl(Thread[Orion Launcher,5,main]): getEndpoint(IIOP_CLEAR_TEXT, 5555, null)
05/02/23 16:43:43 com.sun.corba.ee.internal.iiop.GIOPImpl(Thread[Orion Launcher,5,main]): createListener( socketType = IIOP_CLEAR_TEXT port = 5555 )
05/02/23 16:43:44 com.sun.corba.ee.internal.iiop.GIOPImpl(Thread[Orion Launcher,5,main]): getEndpoint(SSL, 5556, null)
05/02/23 16:43:44 com.sun.corba.ee.internal.iiop.GIOPImpl(Thread[Orion Launcher,5,main]): createListener( socketType = SSL port = 5556 )
05/02/23 16:43:45 ***
05/02/23 16:43:45 found key for : mykey
05/02/23 16:43:45 chain [0] = [
Version: V1
Subject: CN=Server, OU=Bar, O=Foo, L=Some, ST=Where, C=UN
Signature Algorithm: MD5withRSA, OID = 1.2.840.113549.1.1.4
Key: SunJSSE RSA public key:
public exponent:
010001
modulus:
b1239fff 2ae5d31d b01a0cfb 1186bae0 bbc7ac41 94f24464 e92a7e33 6a5b0844
109e30fb d24ad770 99b3ff86 bd96c705 56bf2e7a b3bb9d03 40fdcc0a c9bea9a1
c21395a4 37d8b2ce ff00eb64 e22a6dd6 97578f92 29627229 462ebfee 061c99a4
1c69b3a0 aea6a95b 7ed3fd89 f829f17e a9362efe ccf8034a 0910989a a8573305
Validity: [From: Wed Feb 23 15:57:28 SGT 2005,
To: Tue May 24 15:57:28 SGT 2005]
Issuer: CN=Server, OU=Bar, O=Foo, L=Some, ST=Where, C=UN
SerialNumber: [ 421c3768]
Algorithm: [MD5withRSA]
Signature:
0000: 34 F4 FA D4 6F 23 7B 84 30 42 F3 5C 4B 5E 18 17 4...o#..0B.\K^..
0010: 73 69 73 A6 BF 9A 5D C0 67 8D C3 56 DF A9 4A AC sis...].g..V..J.
0020: 88 AF 24 28 C9 39 16 22 29 81 01 93 86 AA 1A 5D ..$(.9.")......]
0030: 07 89 26 22 91 F0 8F DE E1 4A CF 17 9A 02 51 7D ..&".....J....Q.
0040: 92 D3 6D 9B EF 5E C1 C6 66 F9 11 D4 EB 13 8F 17 ..m..^..f.......
0050: E7 66 58 9F 6C B0 60 7C 39 B4 E0 B7 04 A7 7F A6 .fX.l.`.9.......
0060: 4D A5 89 E7 F4 8A DC 59 B4 E7 A5 D4 0A 35 9A F1 M......Y.....5..
0070: A2 CD 3A 04 D6 8F 16 B1 9E 6F 34 40 E8 C0 47 03 ..:[email protected].
05/02/23 16:43:45 ***
05/02/23 16:43:45 adding as trusted cert:
05/02/23 16:43:45 Subject: CN=Client, OU=Bar, O=Foo, L=Some, ST=Where, C=UN
05/02/23 16:43:45 Issuer: CN=Client, OU=Bar, O=Foo, L=Some, ST=Where, C=UN
05/02/23 16:43:45 Algorithm: RSA; Serial number: 0x421c3779
05/02/23 16:43:45 Valid from Wed Feb 23 15:57:45 SGT 2005 until Tue May 24 15:57:45 SGT 2005
05/02/23 16:43:45 adding as trusted cert:
05/02/23 16:43:45 Subject: CN=Server, OU=Bar, O=Foo, L=Some, ST=Where, C=UN
05/02/23 16:43:45 Issuer: CN=Server, OU=Bar, O=Foo, L=Some, ST=Where, C=UN
05/02/23 16:43:45 Algorithm: RSA; Serial number: 0x421c3768
05/02/23 16:43:45 Valid from Wed Feb 23 15:57:28 SGT 2005 until Tue May 24 15:57:28 SGT 2005
05/02/23 16:43:45 trigger seeding of SecureRandom
05/02/23 16:43:45 done seeding SecureRandom
05/02/23 16:43:45 com.sun.corba.ee.internal.iiop.GIOPImpl(Thread[Orion Launcher,5,main]): getEndpoint(SSL_MUTUALAUTH, 5557, null)
05/02/23 16:43:45 com.sun.corba.ee.internal.iiop.GIOPImpl(Thread[Orion Launcher,5,main]): createListener( socketType = SSL_MUTUALAUTH port = 5557 )
05/02/23 16:43:45 matching alias: mykey
matching alias: mykey
05/02/23 16:43:46 ORB created ..com.oracle.iiop.server.OC4JORB@65b738
05/02/23 16:43:47 com.sun.corba.ee.internal.corba.ClientDelegate(Thread[Orion Launcher,5,main]): invoke(ClientRequest) called
05/02/23 16:43:47 com.oracle.iiop.server.OC4JORB(Thread[Orion Launcher,5,main]): process: dispatching to scid 2
05/02/23 16:43:47 com.oracle.iiop.server.OC4JORB(Thread[Orion Launcher,5,main]): dispatching to sc [email protected]7
05/02/23 16:43:48 com.sun.corba.ee.internal.corba.ClientDelegate(Thread[Orion Launcher,5,main]): invoke(ClientRequest) called
05/02/23 16:43:48 com.oracle.iiop.server.OC4JORB(Thread[Orion Launcher,5,main]): process: dispatching to scid 2
05/02/23 16:43:48 com.oracle.iiop.server.OC4JORB(Thread[Orion Launcher,5,main]): dispatching to sc com.sun.corba.ee.internal.corba.ServerDelegate@9300cc
05/02/23 16:43:48 com.sun.corba.ee.internal.corba.ServerDelegate(Thread[Orion Launcher,5,main]): Entering dispatch method
05/02/23 16:43:48 com.sun.corba.ee.internal.corba.ServerDelegate(Thread[Orion Launcher,5,main]): Consuming service contexts, GIOP version: 1.2
05/02/23 16:43:48 com.sun.corba.ee.internal.corba.ServerDelegate(Thread[Orion Launcher,5,main]): Has code set context? false
05/02/23 16:43:48 com.sun.corba.ee.internal.corba.ServerDelegate(Thread[Orion Launcher,5,main]): Dispatching to servant
05/02/23 16:43:48 com.sun.corba.ee.internal.corba.ServerDelegate(Thread[Orion Launcher,5,main]): Handling invoke handler type servant
05/02/23 16:43:48 NS service created and started ..org.omg.CosNaming._NamingContextExtStub:IOR:000000000000002b49444c3a6f6d672e6f72672f436f734e616d696e672f4e616d696e67436f6e746578744578743a312e30000000000001000000000000007c000102000000000c31302e312e3231342e31310015b3000000000031afabcb0000000020d309e06a0000000100000000000000010000000c4e616d65536572766963650000000004000000000a0000000000000100000001000000200000000000010001000000020501000100010020000101090000000100010100
05/02/23 16:43:48 NS ior = ..IOR:000000000000002b49444c3a6f6d672e6f72672f436f734e616d696e672f4e616d696e67436f6e746578744578743a312e30000000000001000000000000007c000102000000000c31302e312e3231342e31310015b3000000000031afabcb0000000020d309e06a0000000100000000000000010000000c4e616d65536572766963650000000004000000000a0000000000000100000001000000200000000000010001000000020501000100010020000101090000000100010100
05/02/23 16:43:48 Oracle Application Server Containers for J2EE 10g (9.0.4.0.0) initialized
05/02/23 16:45:14 com.sun.corba.ee.internal.iiop.ConnectionTable(Thread[JavaIDL Listener,5,main]): Server getConnection(119e583[Unknown 0x0:0x0: Socket[addr=/127.0.0.1,port=1281,localport=5556]], SSL)
05/02/23 16:45:14 com.sun.corba.ee.internal.iiop.ConnectionTable(Thread[JavaIDL Listener,5,main]): host = 127.0.0.1 port = 1281
05/02/23 16:45:14 com.sun.corba.ee.internal.iiop.ConnectionTable(Thread[JavaIDL Listener,5,main]): Created connection Connection[type=SSL remote_host=127.0.0.1 remote_port=1281 state=ESTABLISHED]
com.sun.corba.ee.internal.iiop.MessageMediator(Thread[JavaIDL Reader for 127.0.0.1:1281,5,main]): Creating message from stream
05/02/23 16:45:14 JavaIDL Reader for 127.0.0.1:1281, handling exception: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
05/02/23 16:45:14 JavaIDL Reader for 127.0.0.1:1281, SEND TLSv1 ALERT: fatal, description = unexpected_message
05/02/23 16:45:14 JavaIDL Reader for 127.0.0.1:1281, WRITE: TLSv1 Alert, length = 2
05/02/23 16:45:14 JavaIDL Reader for 127.0.0.1:1281, called closeSocket()
05/02/23 16:45:14 com.sun.corba.ee.internal.iiop.ReaderThread(Thread[JavaIDL Reader for 127.0.0.1:1281,5,main]): IOException in createInputStream: javax.net.ssl.SSLException: Connection has been shutdown: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
05/02/23 16:45:14 javax.net.ssl.SSLException: Connection has been shutdown: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
05/02/23 16:45:14 at com.sun.net.ssl.internal.ssl.SSLSocketImpl.d(DashoA12275)
05/02/23 16:45:14 at com.sun.net.ssl.internal.ssl.AppInputStream.read(DashoA12275)
05/02/23 16:45:14 at com.sun.corba.ee.internal.iiop.messages.MessageBase.readFully(MessageBase.java:520)
05/02/23 16:45:14 at com.sun.corba.ee.internal.iiop.messages.MessageBase.createFromStream(MessageBase.java:58)
05/02/23 16:45:14 at com.sun.corba.ee.internal.iiop.MessageMediator.processRequest(MessageMediator.java:110)
05/02/23 16:45:14 at com.sun.corba.ee.internal.iiop.IIOPConnection.processInput(IIOPConnection.java:339)
05/02/23 16:45:14 at com.sun.corba.ee.internal.iiop.ReaderThread.run(ReaderThread.java:63)
05/02/23 16:45:14 Caused by: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
05/02/23 16:45:14 at com.sun.net.ssl.internal.ssl.InputRecord.b(DashoA12275)
05/02/23 16:45:14 at com.sun.net.ssl.internal.ssl.InputRecord.read(DashoA12275)
05/02/23 16:45:14 at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA12275)
05/02/23 16:45:14 at com.sun.net.ssl.internal.ssl.SSLSocketImpl.j(DashoA12275)
05/02/23 16:45:14 at com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA12275)
05/02/23 16:45:14 ... 6 more
05/02/23 16:45:14 com.sun.corba.ee.internal.iiop.IIOPConnection(Thread[JavaIDL Reader for 127.0.0.1:1281,5,main]): purge_calls: starting: code = 1398079696 die = true
05/02/23 16:45:14 JavaIDL Reader for 127.0.0.1:1281, called close()
05/02/23 16:45:14 JavaIDL Reader for 127.0.0.1:1281, called closeInternal(true)
05/02/23 16:45:14 JavaIDL Reader for 127.0.0.1:1281, called close()
05/02/23 16:45:14 JavaIDL Reader for 127.0.0.1:1281, called closeInternal(true)
05/02/23 16:45:14 JavaIDL Reader for 127.0.0.1:1281, called close()
05/02/23 16:45:14 JavaIDL Reader for 127.0.0.1:1281, called closeInternal(true)
05/02/23 16:45:14 com.sun.corba.ee.internal.iiop.ConnectionTable(Thread[JavaIDL Reader for 127.0.0.1:1281,5,main]): DeleteConn called: host = 127.0.0.1 port = 1281Good point, I do belive what you are referring to is this:
Any client, whether running inside a server or not, has EJB security properties. Table 15-2 lists the EJB client security properties controlled by the ejb_sec.properties file. By default, OC4J searches for this file in the current directory when running as a client, or in ORACLE_HOME/j2ee/home/config when running in the server. You can specify the location of this file explicitly with the system property setting -Dejb_sec_properties_location=pathname.
Table 15-2 EJB Client Security Properties
Property Meaning
# oc4j.iiop.keyStoreLoc
The path and name of the keystore. An absolute path is recommended.
# oc4j.iiop.keyStorePass
The password for the keystore.
# oc4j.iiop.trustStoreLoc
The path name and name of the truststore. An absolute path is recommended.
# oc4j.iiop.trustStorePass
The password for the truststore.
# oc4j.iiop.enable.clientauth
Whether the client supports client-side authentication. If this property is set to true, you must specify a keystore location and password.
# oc4j.iiop.ciphersuites
Which cipher suites are to be enabled. The valid cipher suites are:
TLS_RSA_WITH_RC4_128_MD5
SSL_RSA_WITH_RC4_128_MD5
TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA
SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA
TLS_RSA_EXPORT_WITH_RC4_40_MD5
SSL_RSA_EXPORT_WITH_RC4_40_MD5
TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA
nameservice.useSSL
Whether to use SSL when making the initial connection to the server.
client.sendpassword
Whether to send user name and password in clear form (unencrypted) in the service context when not using SSL. If this property is set to true, the user name and password are sent only to servers listed in the trustedServer list.
oc4j.iiop.trustedServers
A list of servers that can be trusted to receive passwords sent in clear form. This has no effect if client.sendpassword is set to false. The list is comma-delimited. Each entry in the list can be an IP address, a host name, a host name pattern (for example, *.example.com), or * (where "*" alone means that all servers are trusted.
Maybe you are looking for
-
Differential Billing through SD for Excise
Dear All, I am unable to create an Excise Document. This is for the scenario is for the differential amount. The scenario is as follows I am creating a Sales Document, Delivery Document,Billing Document and then an Excise Document. Since the Selling
-
Finding the path to Oracle home
Hi I am trying to get the value of "oracle home" (e.g OraDb11g_home1) and display it within my java program, not sure how to do this. One possible way it to parse the ContentsXML/inventory.xml file. The only drawback I can think of is that a user may
-
I can't change fonts in FireFox 4.0
Since I upgraded to FF 4.0 I've noticed the font-rendering doesn't look quite right; the fonts are too light and seem a bit blurry. The font itself has changed from Arial to something else. I've tried changing the font back to Arial and selecting dif
-
Hi, I'm feeling a little , no really stupid right now. I've been using CS3 for about a month. Last week the css styles stopped being applied. I am definitely at the 'novice' level. When I apply a style, the property inspector indicates the style is a
-
Acquire date from agilent dso3104 in avraging mode
hi i am trying to acquire data from agilent dso 3104 x in labview . when i configure my dso in normal mode it is acquiring data but when i configure my dso in avraging mode it is not acquiring data on lab view