-1

I am trying to replay a load runner script which makes the call through RMI to the server client-server application. The RMI service and registry are running fine on the server as other applications are able to connect and work fine.

When I try to replay the LoadRunner script, I am getting below stacktrace:

Virtual User Script started at : 2014-03-13 11:03:29
Starting action vuser_init.
Ending action vuser_init.
Running Vuser...
Starting iteration 1.
Starting action Actions.
java.rmi.registry.LocateRegistry.getRegistry("mycompamny.abc.xyz.com", 25002, [RMIClientSocketFactory])
sun.rmi.registry.RegistryImpl_Stub.lookup("XMLS")
Error: System.err: java.net.MalformedURLException--Error
System.err:     at java.net.URL.<init>(URL.java:601)--Error
System.err:     at java.net.URL.<init>(URL.java:464)--Error
System.err:     at java.net.URL.<init>(URL.java:413)--Error
System.err:     at murex.shared.fs.Connection.<init>(Connection.java:43)--Error
System.err:     at murex.shared.property.Properties.fillRMIProperties(Properties.java:231)--Error
System.err:     at murex.shared.property.Properties.getObjProperty(Properties.java:91)--Error
System.err:     at murex.shared.property.Properties.getProperty(Properties.java:80)--Error
System.err:     at murex.apps.middleware.client.core.server.transport.rpc.tcp.socket.SocketUtilities.setSocket(SocketUtilities.java:81)--Error
System.err:     at murex.apps.middleware.client.core.server.transport.rpc.tcp.socket.CompressedRMISocketFactory.createSocket(CompressedRMISocketFactory.java:29)--Error
System.err:     at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:595)--Error
System.err:     at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:198)--Error
System.err:     at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)--Error
System.err:     at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:322)--Error
System.err:     at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)--Error
System.err:     at Actions.action(Actions.java:105)--Error
Error: System.err: java.lang.NullPointerException--Error
System.err:     at murex.apps.middleware.client.core.server.transport.rpc.tcp.socket.CompressedSocket.getOutputStream(CompressedSocket.java:67)--Error
System.err:     at sun.rmi.transport.tcp.TCPConnection.getOutputStream(TCPConnection.java:66)--Error
System.err:     at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:202)--Error
System.err:     at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)--Error
System.err:     at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:322)--Error
System.err:     at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)--Error
System.err:     at Actions.action(Actions.java:105)--Error
Error: java.lang.NullPointerException
Error:  at murex.apps.middleware.client.core.server.transport.rpc.tcp.socket.CompressedSocket.getOutputStream(CompressedSocket.java:67)
    at sun.rmi.transport.tcp.TCPConnection.getOutputStream(TCPConnection.java:66)
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:202)
    at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)
    at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:322)
    at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
    at Actions.action(Actions.java:105)
Abort was called from an action.
Ending Vuser...
Starting action vuser_end.
Ending action vuser_end.
Vuser Terminated.

I am seing the 'MalformedURLException' but the URL we are passing is fine. Please help me resolve this.

texpert
  • 185
  • 1
  • 3
  • 14
  • The URL you are passing is what exactly? You may well think it is 'fine', but unfortunately Java doesn't agree with you. – user207421 Mar 13 '14 at 12:56
  • Yes the URL is fine though I have masked it a bit here in the forum. Other internal tools are connecting using the same URL and I am able to ping it as well. – texpert Mar 13 '14 at 12:59
  • No, the URL isn't 'fine', otherwise you wouldn't get the exception. You need to accept this, and stop asserting the contrary. *What is the URL?* The one being constructed in the murex.shared.fs.Connection.(Connection.java:43) constructor? – user207421 Mar 13 '14 at 13:01
  • I am passing the URL as below in Actions.java which is generated by LoadRunner: _registry1 = java.rmi.registry.LocateRegistry.getRegistry("abcd.usa.mycompany.com", 26001, _compressedrmisocketfactory1); The Connection.java and many other supporting classes are created by LoadRunner. – texpert Mar 13 '14 at 13:39

1 Answers1

0

Most likely an unhandled dynamic element in your URL. Also, if you aren't checking for success for each and every step of your LoadRunner script then you face the very high and real possibility that your business process has come off the tracks before this request and what you are making is a request out of context to the business process which results in an error 100% of the time even for what appears to be a properly formed request.

Check for success with each step using web_reg_find() or web_reg_save_param() for something distinct for success on each page|response returned. If you do not receive what is expected then branch your code to handle the mismatch condition.

The odds are near certainly if you pair checking for expected results with a cross check on handling any dynamic content that this will resolve your issue.

James Pulley
  • 5,606
  • 1
  • 14
  • 14
  • My primary focus is performance testing but this RMI issue I believe is internal to how LoadRunner works. Since it is this error I am trying to debug the java technical RMI side. – texpert Mar 13 '14 at 16:30
  • Personally for RMI Apps I prefer to work in Winsock. It's a lot cleaner and lighter weight. It also works about 95% of the time ans so I don't have to deal with the headaches of Java and LoadRunner – James Pulley Mar 13 '14 at 17:00