Rmi method call timeout

i was wondering if there was any way to timeout a rmi method call.
the situation i had was that a client would envoke an rmi method, and
the method would deadlock in weblogic. the client making the call will
hang forever.
thanks

Thank you for this enlightening addition. I regret I failed to perceive
earlier that your comments were to be interpreted as evidence of sincere
commitment to solving this problem.
Regarding 7.0, you'll note that I described the timeout attribute solution
as "improving stability" rather than as a complete cure. It should be borne
bear in mind that this is an alternative to a completely locked system. When
stress tested, this change did allow the application to recover and run for
the rest of the day.
I'm obliged to you for your concern regarding any liability I might be
incurring in relation to the BEA licensing agreement. Fortunately I think I
may be able to put your mind at rest on this matter relatively easily. If I
may direct your attention to the BEA support site, my experience is that on
entering the search terms "rmi descriptor timeout", the relevant information
will be revealed. Also, I suspect that, as a fellow engineer, it has not
escaped your attention that the RMI descriptor is a valid XML document. As
such, it has a DTD named "rmi.dtd" which (alas) also fails to conceal this
attribute.
While we're pursuing what has now become a gratifyingly productive vein,
let's offer another possible approach to this issue, namely the use of
per-VM timeouts for socket calls. These were introduced in the Sun JDK 1.4.1
and so are available to people running WebLogic 8.1 today. Again these
suggestions have been tested for basic socket I/O (I haven't tried RMI). To
my knowledge these are not endorsed by BEA:
For client connections, timeouts can be set globally by passing the
following startup parameters to the JVM:
sun.net.client.defaultConnectTimeout (default: -1)
sun.net.client.defaultReadTimeout (default: -1)
sun.net.client.defaultConnectTimeout specifies the timeout (in milliseconds)
to establish the connection to the host.
sun.net.client.defaultReadTimeout specifies the timeout (in milliseconds)
when reading from input stream when a connection is established to a
resource.
(reference: Sun's Networking Properties documentation at
http://java.sun.com/j2se/1.4.1/docs/guide/net/properties.html )
Supplying non-default values for these properties should allow a server to
recover from a blocked downstream system if socket I/O is being used.
Regards
Alex
On Fri, 30 Jan 2004 09:02:23 -0800, Andy Piper <[email protected]>
wrote:
Alex Thomas <[email protected]> writes:
Hardly a constructive response to what is clearly a significant problem.
First, it should be obvious that this issue will be encountered in any
distributed system using T3 or RMI, not because of any shortcoming in
WebLogic services but because of blocking behaviour in downstream systems.That's why it is a new feature in 9.0. I'm not arguing that the
use-case is invalid, simply that your suggestion should not be tried.
Second, the solution I proposed has been tested (on 7.0SP1) and does improve
overall stability, as other people here have apparently discovered.Tested by who? Not by us because we know there are significant,
dangerous, problems with the approach you describe. Support are
under strict instructions not to offer this as a solution to
anyone. If anyone in BEA told you, they shouldn't have. If you
discovered it by decompiling the code then you are in violation of
your license agreement.
There is a supported mechanism for timing out connect attempts in 7.0
and later which you can get through support, but for timing out RMI
calls you will have to wait until 9.0 (or cook up a business case for
a backport).
Hope this clears things up.
andy

Similar Messages

  • Error with RMI method call

    Hi,
    I am trying to access a stateless session bean from a client running under JBuilder.
    The method returns a basic object that is serializable, but I get the following
    error.
    java.lang.ArrayIndexOutOfBoundsException
         at com.sun.corba.se.internal.corba.AnyImpl.read_value(AnyImpl.java:345)
         at com.sun.corba.se.internal.iiop.CDRInputStream.read_any(CDRInputStream.java:572)
         at com.sun.corba.se.internal.javax.rmi.CORBA.Util.readAny(Util.java:199)
         at javax.rmi.CORBA.Util.readAny(Util.java:92)
         at com.sun.corba.se.internal.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1486)
         at com.sun.corba.se.internal.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:1768)
         at com.sun.corba.se.internal.io.IIOPInputStream.inputObject(IIOPInputStream.java:897)
         at com.sun.corba.se.internal.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:264)
         at com.sun.corba.se.internal.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:250)
         at com.sun.corba.se.internal.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:212)
         at com.sun.corba.se.internal.iiop.CDRInputStream.read_value(CDRInputStream.java:1060)
         at com.sun.corba.se.internal.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1555)
         at com.sun.corba.se.internal.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:1768)
         at com.sun.corba.se.internal.io.IIOPInputStream.inputObject(IIOPInputStream.java:897)
         at com.sun.corba.se.internal.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:264)
         at com.sun.corba.se.internal.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:250)
         at com.sun.corba.se.internal.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:212)
         at com.sun.corba.se.internal.iiop.CDRInputStream.read_value(CDRInputStream.java:906)
         at com.sun.corba.se.internal.core.UEInfoServiceContext.<init>(UEInfoServiceContext.java:33)
         at java.lang.reflect.Constructor.newInstance(Native Method)
         at com.sun.corba.se.internal.core.ServiceContextData.makeServiceContext(ServiceContextData.java:113)
         at com.sun.corba.se.internal.core.ServiceContexts.<init>(ServiceContexts.java:106)
         at com.sun.corba.se.internal.iiop.ReplyMessage.read(ReplyMessage.java:133)
         at com.sun.corba.se.internal.iiop.IIOPInputStream.<init>(IIOPInputStream.java:89)
         at com.sun.corba.se.internal.iiop.ClientResponseImpl.<init>(ClientResponseImpl.java:29)
         at com.sun.corba.se.internal.iiop.IIOPConnection.createInputStream(IIOPConnection.java:622)
         at com.sun.corba.se.internal.iiop.ReaderThread.run(IIOPConnection.java:109)
    org.omg.CORBA.UNKNOWN: minor code: 0 completed: Maybe
         at com.sun.corba.se.internal.core.UEInfoServiceContext.<init>(UEInfoServiceContext.java:37)
         at java.lang.reflect.Constructor.newInstance(Native Method)
         at com.sun.corba.se.internal.core.ServiceContextData.makeServiceContext(ServiceContextData.java:113)
         at com.sun.corba.se.internal.core.ServiceContexts.<init>(ServiceContexts.java:106)
         at com.sun.corba.se.internal.iiop.ReplyMessage.read(ReplyMessage.java:133)
         at com.sun.corba.se.internal.iiop.IIOPInputStream.<init>(IIOPInputStream.java:89)
         at com.sun.corba.se.internal.iiop.ClientResponseImpl.<init>(ClientResponseImpl.java:29)
         at com.sun.corba.se.internal.iiop.IIOPConnection.createInputStream(IIOPConnection.java:622)
         at com.sun.corba.se.internal.iiop.ReaderThread.run(IIOPConnection.java:109)
    Could you please point out some possible errors? Thanks.
    Charles

    [email protected] (Shawn Samuel) writes:
    Its quite likely that this is fixed in SP3. I suspect that the Map you
    are using is custom marshaled. There were some problems with this in
    SP2 which got fixed in 7.0 but weren't backported until recently.
    Can you be more explicit about the implementation class you are using?
    It seems unlikely that this is the null problem since the Map does not
    contain extra space. Unless you are putting nulls in it? Are you, the
    JDK won't cope with the correct encoding of null.
    andy
    I'm having a similar problem and getting nowhere.
    I'm calling a method on a stateless session bean with a serializable
    object as an argument that returns the same type of serializable
    object. This error comes back somewhere after the session bean returns
    on the server side. I'm running WL6.1SP2, jdk1.3.1_02, using rmi/iiop
    with the jdk orb and com.sun.jndi.cosnaming.CNCtxFactory on the
    client. I am able to make calls to the EJB that only take String
    arguments with no problems whatsoever.
    The serializable object contains Strings and a Map. Weblogic would
    give me a CORBA error on receiving the function call when I populated
    the Map. Leaving the Map null and setting only the Strings resulted in
    the call going all the way through the session bean method with no
    problem, but after populating a return object of the same type with
    only Strings, leaving the Map member null, and returning, I get the
    below error on the client.
    I'm getting a similar stack trace, but running a debugger on weblogic
    doesn't seem to indicate any unchecked exceptions being thrown.
    Is there something I'm overlooking here?
    thanks,
    Shawn
    my stack trace:
    java.lang.ArrayIndexOutOfBoundsException
         at com.sun.corba.se.internal.corba.AnyImpl.read_value(AnyImpl.java:345)
         at com.sun.corba.se.internal.iiop.CDRInputStream.read_any(CDRInputStream.java:572)
         at com.sun.corba.se.internal.javax.rmi.CORBA.Util.readAny(Util.java:199)
         at javax.rmi.CORBA.Util.readAny(Util.java:92)
         at com.sun.corba.se.internal.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1486)
         at com.sun.corba.se.internal.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:1768)
         at com.sun.corba.se.internal.io.IIOPInputStream.inputObject(IIOPInputStream.java:897)
         at com.sun.corba.se.internal.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:264)
         at com.sun.corba.se.internal.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:250)
         at com.sun.corba.se.internal.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:212)
         at com.sun.corba.se.internal.iiop.CDRInputStream.read_value(CDRInputStream.java:1060)
         at com.i2.cis.operation.ejb._EJBOperation_Stub.invoke(Unknown Source)
         at com.i2.cis.transport.ejb.CISTransportEJB.invoke(CISTransportEJB.java:46)
         at com.i2.cis.transport.CISTransportBasic.execute(CISTransportBasic.java:138)
         at com.i2.cis.api.connector.CISConnection.execute(CISConnection.java:59)
         at com.i2.cis.api.connector.CISInteraction.execute(CISInteraction.java:45)
         at com.i2.cis.api.connector.test.CISClient.main(CISClient.java:55)
    Andy Piper <[email protected]> wrote in message news:<[email protected]>...
    "Charles Canning" <[email protected]> writes:
    This indicates that the server threw an unchecked exception but the
    client was unable to unmarshal it. Please make sure you are using SP2
    of WLS 6.1. Also what version of the JDK are you using?
    andy
    Hi,
    I am trying to access a stateless session bean from a client running under JBuilder.
    The method returns a basic object that is serializable, but I get the following
    error.
    java.lang.ArrayIndexOutOfBoundsException
         at com.sun.corba.se.internal.corba.AnyImpl.read_value(AnyImpl.java:345)
         at com.sun.corba.se.internal.iiop.CDRInputStream.read_any(CDRInputStream.java:572)
         at com.sun.corba.se.internal.javax.rmi.CORBA.Util.readAny(Util.java:199)
         at javax.rmi.CORBA.Util.readAny(Util.java:92)
         at com.sun.corba.se.internal.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1486)
         at com.sun.corba.se.internal.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:1768)
         at com.sun.corba.se.internal.io.IIOPInputStream.inputObject(IIOPInputStream.java:897)
         at com.sun.corba.se.internal.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:264)
         at com.sun.corba.se.internal.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:250)
         at com.sun.corba.se.internal.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:212)
         at com.sun.corba.se.internal.iiop.CDRInputStream.read_value(CDRInputStream.java:1060)
         at com.sun.corba.se.internal.io.IIOPInputStream.inputObjectField(IIOPInputStream.java:1555)
         at com.sun.corba.se.internal.io.IIOPInputStream.inputClassFields(IIOPInputStream.java:1768)
         at com.sun.corba.se.internal.io.IIOPInputStream.inputObject(IIOPInputStream.java:897)
         at com.sun.corba.se.internal.io.IIOPInputStream.simpleReadObject(IIOPInputStream.java:264)
         at com.sun.corba.se.internal.io.ValueHandlerImpl.readValueInternal(ValueHandlerImpl.java:250)
         at com.sun.corba.se.internal.io.ValueHandlerImpl.readValue(ValueHandlerImpl.java:212)
         at com.sun.corba.se.internal.iiop.CDRInputStream.read_value(CDRInputStream.java:906)
         at com.sun.corba.se.internal.core.UEInfoServiceContext.<init>(UEInfoServiceContext.java:33)
         at java.lang.reflect.Constructor.newInstance(Native Method)
         at com.sun.corba.se.internal.core.ServiceContextData.makeServiceContext(ServiceContextData.java:113)
         at com.sun.corba.se.internal.core.ServiceContexts.<init>(ServiceContexts.java:106)
         at com.sun.corba.se.internal.iiop.ReplyMessage.read(ReplyMessage.java:133)
         at com.sun.corba.se.internal.iiop.IIOPInputStream.<init>(IIOPInputStream.java:89)
         at com.sun.corba.se.internal.iiop.ClientResponseImpl.<init>(ClientResponseImpl.java:29)
         at com.sun.corba.se.internal.iiop.IIOPConnection.createInputStream(IIOPConnection.java:622)
         at com.sun.corba.se.internal.iiop.ReaderThread.run(IIOPConnection.java:109)
    org.omg.CORBA.UNKNOWN: minor code: 0 completed: Maybe
         at com.sun.corba.se.internal.core.UEInfoServiceContext.<init>(UEInfoServiceContext.java:37)
         at java.lang.reflect.Constructor.newInstance(Native Method)
         at com.sun.corba.se.internal.core.ServiceContextData.makeServiceContext(ServiceContextData.java:113)
         at com.sun.corba.se.internal.core.ServiceContexts.<init>(ServiceContexts.java:106)
         at com.sun.corba.se.internal.iiop.ReplyMessage.read(ReplyMessage.java:133)
         at com.sun.corba.se.internal.iiop.IIOPInputStream.<init>(IIOPInputStream.java:89)
         at com.sun.corba.se.internal.iiop.ClientResponseImpl.<init>(ClientResponseImpl.java:29)
         at com.sun.corba.se.internal.iiop.IIOPConnection.createInputStream(IIOPConnection.java:622)
         at com.sun.corba.se.internal.iiop.ReaderThread.run(IIOPConnection.java:109)
    Could you please point out some possible errors? Thanks.
    Charles--

  • Errors in calling rmi methods

    iPlanet6.1 is throwing following exceptions during rmi calls. Seems to be it is having problem in establishing t3 connections to the weblogic.
    java.rmi.ConnectException: Connection to: 'wlserver1' over: 't3' g
    ot an error or timed out
    at weblogic.rjvm.ConnectionManager.ensureConnectionEstablished(Connectio
    nManager.java:1272)
    at weblogic.rjvm.ConnectionManager.getOutputStream(ConnectionManager.jav
    a:1316)
    at weblogic.rjvm.RJVMImpl.getRequestStream(RJVMImpl.java:348)
    at weblogic.rmi.internal.BasicRemoteRef.getOutboundRequest(BasicRemoteRe
    f.java:97)
    at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:125)
    at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.java:35)
    =======
    java.rmi.ConnectException: Attempt to sendMsg using a closed connection
    at weblogic.rmi.internal.BasicOutboundRequest.sendReceive(BasicOutboundR
    equest.java:85)
    at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef.java:136)
    at weblogic.rmi.internal.ProxyStub.invoke(ProxyStub.java:35)
    We have to restart iplanet whenever we get this problem and then it works fine for 40min - 1hr and it repeats the problem again. But we could make t3 connections and call rmi methods on the appserver by a test program running out of webserver without any problem at the same time when iplanet was having problems.
    Did anybody face this problem before?
    Thanks.
    Ashok

    es5f2000 wrote:
    jschell wrote:
    That works?I dunno. The below definitely works, but like I said, I've only
    ever done it with one output parameter (and that has always
    been a ResultSet).
    String callableQuery = "{?= call my_package.my_call(?, ?)}"
    Yes I have done that and at least in terms of my code it wasn't just a result set.
    But not with two.

  • Timeout a method call made from an EJB

    Hi,
    Is there a way to implement a timeout in a SOAP method call which I'm invoking from an EJB. I'm trying to use a web service RPC method in my client and I need to know if there is some way by which I can timeout the method invocation.
    For eg, what happens if the web service is down? I want to be able to tell the user that the call did not go through because the web service was down. I'm assuming that I'll have to specify some sort of a timeout period for which the call will wait for a response. If no response is received during this time, I want to say that a timeout occured.
    So, if I do something like
    webServiceA.invokeSoapMethod(parmaeters);
    from an EJB I want that this method should wait for, say 10 seconds, for a response and then say that the call timed out. Is there any way to do such a thing?
    Alternatively, if somebody can give me some pointers to whether SOAP or RPC (or some other component!) specify some way to timeout the RPC call, I'll appreciate that too..:-).
    Thanks in advance..:-)
    Ruchi

    Unfortunetly, I am on the same ship.... has anyone a solution for the same?

  • Question about the concept of RMI reverse calls.

    Hello guys.
    I'd appreciate if someone could clarify something to me. As far as I understand , RMI reverse call in concept, is the mean thought witch a server can remotely call a method belonging to the client.
    I've done that like this: the client called a method from to the server(classic rmi) , method that had the particularity to received as a parameter an instance of a serialized .class belonging to client. Through that received remote object it seems the server can call specific methods belonging to the client .class.
    I'm not sure it's the correct way to do reverse calls, but what puzzles me is that shouldn't the server be able to call a client method without first needing to receive that instance of the client's .class and implicitly being dependent on that client initial call (maybe to get that .class in a different way)?

    I'm not sure it's the correct way to do reverse callsIt's not. If the object passed to the server is serializable, the server can call methods on it, but they will execute at the server.
    The object you pass to the server must be an exported remote object. Then the server callbacks will execute at the client.
    but what puzzles me is that shouldn't the server be able to call a client method without first needing to receive that instance of the client's .classNo, why?
    and implicitly being dependent on that client initial call (maybe to get that .class in a different way)?When you get the exported remote object part right, the remote method via which the client passes the callback to the server will declare the callback as a remote interface, not as the implementing class at the client.

  • How can I interrupt the blocking call when call timeout?

    Hi,Guys
    I wrote an application server(daemon process) to talk with oracle server
    continuous which used oracle9 OCCI lib, each 5 min it executes the procedure
    on the DB server.
    Now I have come cross a problem:
    If the network is blocked, app server will blocked at occi call and would
    never pass, and no exception was catched :-(
    for e.g.
    1. Oracle server reboot without shutdown oracle process
    2. udp broadcast message storm blocked the connection between app server and
    oracle DB.
    I consider maybe it's because OCCI using the blocking mode of connection
    that caused this problem.
    How can I interrupt the blocking call when call timeout?

    Manage the timeout using a separate thread. When the timeout happens, issue a break on the OCCI connection. There is no direct way as of now. You need to do this to break a OCCI connection.
    retrieve the OCI handle from the OCCI handle (e.g. using Connection::getOCIServer or Connection::getOCIServiceContext methods) and issue a OCIBreak on it. Do not forget to allocate a error handle which should be passed to OCIBreak call.

  • Set Web Service Call Timeout

    Hi,
    in earlier JDeveloper while creating a web service client we used to easily set the call timeout, but now we're using JDev 10.1.3, generating a proxy create a lot of new classes, moreover, the methods calls is not handled the same way it was, but we still need to set the call timeout.
    The automaticaly generated code is something like this:
    public MyServiceClient() throws Exception {
    ServiceFactory factory = ServiceFactory.newInstance();
    port = ((servicesource.proxy.MyServiceService)factory.loadService(servicesource.proxy.MyService_Service.class)).getMyService();
    this.setEndpoint("http://server/MyService");
    nothing extends neither implements the OracleSOAPHTTPConnection (which has the setTimeout method we used to use)
    Any ideas?
    Thanks.

    ahhh,
    is there any available explanation why it is not available anymore? specs?
    Calls are hanging now, what would be the defaul timeout value?
    it can't be changed programmatically? can't we modify it by some global variable/property/xmlFile ?
    thank you.

  • Preventing hang on a method call in doGet ()

    Hi,
    I have the following problem.
    Inside the doGet() method, I have a method call X which may take a long time or hand, what it does is do some calculations and return a object Obj. Then I can send this Obj back to client.
    My question is how can i set a Timeout, say 20 seconds. If the method can be finished within 20 sec, then I just let it keep going. It X takes more than 20 seconds, before X finish (or maybe it never finish) I will set a error message into Obj then sent it back to client.
    Can anybody help me with some sample code or suggestion?
    Any input will be appreciated.

    Thanks, @Sujoy.
    According to your suggestion, each expensive method will take AT LEAST the specified wait miliseconds to finish.
    My solution was to start a timer thread before call the method, after the X number of miliseconds, the thread will check the return object from the method. but the problem is the thread has no way to access to the local varialbe inside the method. If you make the variable outside the doGet, which is an instance variable, every request thread will be capable of changing it, which is not acceptable.
    Any better idea? thanks!

  • Retrieving client identity during method call

    Hy,
    I have written an RMI application wich uses JSSE with client authentication. I would like to get the client Identity (Certificate information) each time the client perform a method call.
    Can anybody help me?

    This is rather complicated but it can be done. You need:
    1. an RMIServerSocketFactory which returns
    2. a wrapper ServerSocket implementation around a real ServerSocket, which delegates everything to the real ServerSocket except for the accept method, which does the delegation but then wraps the result in
    3. a wrapper Socket implementation around the real Socket which delegates everything to the real Socket
    except getInputStream, which does the delegation but then wraps the result in
    4. a wrapper InputStream implementation around the real InputStream, which delegates everything to the real input stream but which registers the underlying Socket (the delegate, not your wrapper) in a ThreadLocal when any read method is called.
    Are you with me so far? ;-)
    The registered Socket will really be an SSLSocket. Now, inside your remote method implementation, you can do threadLocal.get() to get the SSLSocket associated with the current client (because you're in the same thread as in (4), because the socket is actually read for the first time in the method despatching thread. You can now do SSLSocket.getSession() and get hold of the client certificates.
    Sample of (2) to get you started:
    public class WrappedServerSocket extends ServerSocket
    SSLServerSocket serverSocket;
    public WrappedServerSocket(int port) throws IOException
    { this.serverSocket = SSLServerSocketFactory.createServerSocket(port); }
    public Socket accept() throws IOException
      Socket socket = serverSocket.accept();
      return new WrappedSocket(socket);
    // all other methods should delegate to serverSocket
    }EJP

  • MSPL Retarget a Invite Request to UCMA ApplicationEndpoint But Accept Call Timeout

    I retarget invite requests to an application endpoint, but failed because of the timeout while accepting the incoming call. The exception details are as follows:
    Occured an error while accepting the call. Detail: Microsoft.Rtc.Signaling.Opera
    tionTimeoutException:This operation has timed out.
       at Microsoft.Rtc.Signaling.SipAsyncResult`1.ThrowIfFailed()
       at Microsoft.Rtc.Signaling.Helper.EndAsyncOperation[T](Object owner, IAsyncRe
    sult result)
       at Microsoft.Rtc.Collaboration.Call.EndAcceptCore(IAsyncResult result)
       at IMTransfer.InstantMessageTransfer.<>c__DisplayClass1.<OnInstantMessagingCa
    llReceived>b__0(IAsyncResult ar) in C:\Users\qhguo\documents\visual studio 2010\
    Projects\UCMA Sample Code\IMTransfer\Program.cs:line 48
    Detected at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo)
       at System.Environment.get_StackTrace()
       at Microsoft.Rtc.Signaling.RealTimeException..ctor(String message, Exception
    innerException)
       at Microsoft.Rtc.Signaling.SipAcceptAsyncResult.TimerItem_Expired(Object send
    er, EventArgs e)
       at Microsoft.Rtc.Signaling.QueueWorkItemState.ExecuteWrappedMethod(WaitCallba
    ck method, Object state)
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, C
    ontextCallback callback, Object state, Boolean ignoreSyncCtx)
       at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWor
    kItem.ExecuteWorkItem()
       at System.Threading.ThreadPoolWorkQueue.Dispatch()
       at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
    The incomming call state has change from Terminating to Terminated
    And the following pictures tell us the reslut of analyzing the log files:
    Front-End Server: FEServer.bjdev.com/pool.bjdev.com
    App Server: exchange.bjdev.com
    I have been confirmed, all of the firewall have been closed. What could be the reason lead to accept incomming call timeout?

    Hi IT漫步者,
    Can you try disabling
    REFER support in Lync Control Panel ?
    Best regards,
    Eric

  • Easy method call problem

    Hi,
    Does anyone know how to call a certain method in a parent
    script from a behaviour script? Have a method called startit but
    when it I compile it says its the handler is not found.
    Cheers,
    Brenden

    Hi,
    > beginConn = new(member("beginscript").script)
    A more common way of doing this is with this syntax:
    beginConn = script("beginscript").new()
    > As the target instance is not being found now even if I
    have converted
    > to a parent script. Seems very strange!
    An object is an object regardless of the script type that
    made it (the reason why behaviours and parent scripts are generally
    better suited for making objects is that they have a 'protect
    scope' - if you call a handler without specifying the 'object' with
    that handler, then Director looks in all movie scripts for that
    handler; it wont attempt to call the handler or method defined in a
    parent script or behaviour unless you specify that script or an
    instance of that script ).
    > beginConn.startit()
    > on startit me
    > checker = timeout("looker").new(10000, #looker, me)
    > end
    Assuming 'beginConn' contains a reference to an instance of
    the script containing the 'startit' method, then your code looks
    fine (unless you are using DirectorMX2004, in which case it should
    be checker = timeout().new("looker", 10000, #looker, me)).
    Put a debug line in just before you create the timeout, and
    see what 'me' points to. eg.
    on startit me
    put "#startIt message received by " & me
    checker = timeout("looker").new(10000, #looker, me)
    end
    on looker (me, timeoutObject)
    put "#looker message sent by " & timeoutObject & "
    was received by " & me
    end
    -- Luke

  • MDB/JRun: "Application authentication required. Incorrect method call."

    Hi people!
    I am using a message-driven EJB listening on a queue.
    Everytime a start the server, the server deploys the enterprise
    application with the MDB and the queue, and then gives this error
    message:
    "Application authentication required. Incorrect method call."
    What am I missing?
    Here are more details: The server is in fact CFMX6.1 in
    standalone installation and I am using the hidden JRun inside it.
    Here is an extract of ejb-jar.xml:
    <message-driven>
    <ejb-name>ij.portal.EventExecutor</ejb-name>
    <ejb-class>ij.portal.EventExecutor</ejb-class>
    <transaction-type>Container</transaction-type>
    <acknowledge-mode>Auto-acknowledge</acknowledge-mode>
    <message-driven-destination>
    <!--javax.jms.Queue or javax.jms.Topic-->
    <destination-type>javax.jms.Queue</destination-type>
    <!--Durable or NonDurable-->
    <subscription-durability>Durable</subscription-durability>
    </message-driven-destination>
    <!--
    The queue that this MDB listens to. The name must be mapped
    to
    a real JNDI name in jrun-ejb-jar.xml.
    -->
    <resource-env-ref>
    <resource-env-ref-name>EventQueue</resource-env-ref-name>
    <resource-env-ref-type>javax.jms.Queue</resource-env-ref-type>
    </resource-env-ref>
    </message-driven>
    A part of the jrun-ejb-jar.xml is:
    <message-driven>
    <ejb-name>ij.portal.EventExecutor</ejb-name>
    <jndi-name>ij.portal.EventExecutor</jndi-name>
    <resource-env-ref>
    <resource-env-ref-name>EventQueue</resource-env-ref-name>
    <jndi-name>jms/queue/EventQueue</jndi-name>
    <mdb-destination>jms/queue/EventQueue</mdb-destination>
    </resource-env-ref>
    <message-driven-subscription>
    <client-id>MDBSubscriber</client-id>
    </message-driven-subscription>
    </message-driven>
    Finally, here is the jrun-resources.xml that defines the
    queue:
    <?xml version="1.0" encoding="UTF-8"?>
    <!--
    <!DOCTYPE jrun-resources PUBLIC "-//Macromedia Inc.//DTD
    jrun-resources 4.0//EN"
    http://jrun.macromedia.com/dtds/jrun-resources.dtd">
    -->
    <jrun-resources>
    <jms-destination>
    <jndi-name>jms/queue/EventQueue</jndi-name>
    <destination-name>EventQueue</destination-name>
    <destination-type>javax.jms.Queue</destination-type>
    </jms-destination>
    <jms-connection-factory>
    <!-- jms provider factory name. Optional-->
    <factory-name>QueueConnectionFactory</factory-name>
    <!-- jndi name - name under wich this connection factory
    will be available -->
    <!-- to client in jndi. Required. -->
    <jndi-name>jms/jndi-QueueConnectionFactory</jndi-name>
    <!-- connection factory type (required ifno -->
    <!-- can be one of the -->
    <!-- following: -->
    <!-- javax.jms.QueueConnectionFactory, -->
    <!-- javax.jms.XAQueueConnectionFactory, -->
    <!-- javax.jms.TopicConnectionFactory -->
    <!-- javax.jms.XATopicConnectionFactory -->
    <type>javax.jms.QueueConnectionFactory</type>
    <!-- jms transport (rmi, tcpip, rmiiiopi, intravm). -->
    <!-- Required if no factory name was specified. -->
    <transport>RMI</transport>
    <!-- userName and password required if seamless
    authorization will be used -->
    <!-- (can be specified and updated, upon application
    deployment via resorce-ref) -->
    <username>guest</username>
    <password>guest</password>
    </jms-connection-factory>
    <!-- MDB specifc connection factory - utilizes intra vm
    connection, cannot be used by remote client -->
    <jms-connection-factory>
    <!-- jms provider factory name. Optional-->
    <factory-name>MDBQueueConnectionFactory</factory-name>
    <!-- jndi name - name under wich this connection factory
    will be available -->
    <!-- to client in jndi. Required. -->
    <jndi-name>jms/jndi-MDBQueueConnectionFactory</jndi-name>
    <!-- connection factory type (required ifno -->
    <!-- can be one of the -->
    <!-- following: -->
    <!-- javax.jms.QueueConnectionFactory, -->
    <!-- javax.jms.XAQueueConnectionFactory, -->
    <!-- javax.jms.TopicConnectionFactory -->
    <!-- javax.jms.XATopicConnectionFactory -->
    <type>javax.jms.QueueConnectionFactory</type>
    <!-- jms transport (rmi, tcpip, rmiiiopi, intravm). -->
    <!-- Required if no factory name was specified. -->
    <transport>INTRAVM</transport>
    <!-- username and password required if seamless
    authorization will be used -->
    <!-- (can be specified and updated, upon application
    deployment via resorce-ref) -->
    <username>guest</username>
    <password>guest</password>
    </jms-connection-factory>
    </jrun-resources>
    What am I doing wrong? I should add that the queue and the
    MDB actually work. I just want to get rid of the error message.
    I have found out that the error message comes from the class
    jrun.jms.wrapper.enterprise.JRunConnectionFactoryWrapper, method
    createQueueConnection, when instance variable m_useContainerAuth is
    false.

    When i login with the password and username from my custom authentication provider, my login module check ok, but logon form still there.

  • "Application authentication required. Incorrect method call." on server start with Queues

    Hi people!
    I am using a message-driven EJB listening on a queue.
    Everytime a start the server, the server deploys the enterprise
    application with the MDB and the queue, and then gives this error
    message:
    "Application authentication required. Incorrect method call."
    What am I missing?
    Here are more details: The server is in fact CFMX6.1 in
    standalone installation and I am using the hidden JRun inside it.
    Here is an extract of ejb-jar.xml:
    <message-driven>
    <ejb-name>ij.portal.EventExecutor</ejb-name>
    <ejb-class>ij.portal.EventExecutor</ejb-class>
    <transaction-type>Container</transaction-type>
    <acknowledge-mode>Auto-acknowledge</acknowledge-mode>
    <message-driven-destination>
    <!--javax.jms.Queue or javax.jms.Topic-->
    <destination-type>javax.jms.Queue</destination-type>
    <!--Durable or NonDurable-->
    <subscription-durability>Durable</subscription-durability>
    </message-driven-destination>
    <!--
    The queue that this MDB listens to. The name must be mapped
    to
    a real JNDI name in jrun-ejb-jar.xml.
    -->
    <resource-env-ref>
    <resource-env-ref-name>EventQueue</resource-env-ref-name>
    <resource-env-ref-type>javax.jms.Queue</resource-env-ref-type>
    </resource-env-ref>
    </message-driven>
    A part of the jrun-ejb-jar.xml is:
    <message-driven>
    <ejb-name>ij.portal.EventExecutor</ejb-name>
    <jndi-name>ij.portal.EventExecutor</jndi-name>
    <resource-env-ref>
    <resource-env-ref-name>EventQueue</resource-env-ref-name>
    <jndi-name>jms/queue/EventQueue</jndi-name>
    <mdb-destination>jms/queue/EventQueue</mdb-destination>
    </resource-env-ref>
    <message-driven-subscription>
    <client-id>MDBSubscriber</client-id>
    </message-driven-subscription>
    </message-driven>
    Finally, here is the jrun-resources.xml that defines the
    queue:
    <?xml version="1.0" encoding="UTF-8"?>
    <!--
    <!DOCTYPE jrun-resources PUBLIC "-//Macromedia Inc.//DTD
    jrun-resources 4.0//EN"
    http://jrun.macromedia.com/dtds/jrun-resources.dtd">
    -->
    <jrun-resources>
    <jms-destination>
    <jndi-name>jms/queue/EventQueue</jndi-name>
    <destination-name>EventQueue</destination-name>
    <destination-type>javax.jms.Queue</destination-type>
    </jms-destination>
    <jms-connection-factory>
    <!-- jms provider factory name. Optional-->
    <factory-name>QueueConnectionFactory</factory-name>
    <!-- jndi name - name under wich this connection factory
    will be available -->
    <!-- to client in jndi. Required. -->
    <jndi-name>jms/jndi-QueueConnectionFactory</jndi-name>
    <!-- connection factory type (required ifno -->
    <!-- can be one of the -->
    <!-- following: -->
    <!-- javax.jms.QueueConnectionFactory, -->
    <!-- javax.jms.XAQueueConnectionFactory, -->
    <!-- javax.jms.TopicConnectionFactory -->
    <!-- javax.jms.XATopicConnectionFactory -->
    <type>javax.jms.QueueConnectionFactory</type>
    <!-- jms transport (rmi, tcpip, rmiiiopi, intravm).
    -->
    <!-- Required if no factory name was specified. -->
    <transport>RMI</transport>
    <!-- userName and password required if seamless
    authorization will be used -->
    <!-- (can be specified and updated, upon application
    deployment via resorce-ref) -->
    <username>guest</username>
    <password>guest</password>
    </jms-connection-factory>
    <!-- MDB specifc connection factory - utilizes intra vm
    connection, cannot be used by remote client -->
    <jms-connection-factory>
    <!-- jms provider factory name. Optional-->
    <factory-name>MDBQueueConnectionFactory</factory-name>
    <!-- jndi name - name under wich this connection factory
    will be available -->
    <!-- to client in jndi. Required. -->
    <jndi-name>jms/jndi-MDBQueueConnectionFactory</jndi-name>
    <!-- connection factory type (required ifno -->
    <!-- can be one of the -->
    <!-- following: -->
    <!-- javax.jms.QueueConnectionFactory, -->
    <!-- javax.jms.XAQueueConnectionFactory, -->
    <!-- javax.jms.TopicConnectionFactory -->
    <!-- javax.jms.XATopicConnectionFactory -->
    <type>javax.jms.QueueConnectionFactory</type>
    <!-- jms transport (rmi, tcpip, rmiiiopi, intravm).
    -->
    <!-- Required if no factory name was specified. -->
    <transport>INTRAVM</transport>
    <!-- username and password required if seamless
    authorization will be used -->
    <!-- (can be specified and updated, upon application
    deployment via resorce-ref) -->
    <username>guest</username>
    <password>guest</password>
    </jms-connection-factory>
    </jrun-resources>
    What am I doing wrong? I should add that the queue and the
    MDB actually work. I just want to get rid of the error message.
    I have found out that the error message comes from the class
    jrun.jms.wrapper.enterprise.JRunConnectionFactoryWrapper, method
    createQueueConnection, when instance variable m_useContainerAuth is
    false.

    I dont think you should it on server-side - you can do it in client side logic. Start playing live stream - if no data is coming - i think you can use ns.time for checking this - then switch to recorded file play.

  • Taskflow Method call receiving null parameter.

    Hi all,
    I am using 11.1.1.6. I have created in my application an extra project which is pure Java objects and exposed a master class as a POJO DC. In my application, I have a taskflow where I have dragged and dropped one method from my POJO DC - 2 of the parameters of this methods are coming from an application scope bean. I have debugged the application, and made sure that the object being returned by the getter of my app scope bean is not null. So basically, when the breakpoint is in the return statement of my getter the oject is not null and it has been correctly initialized. Just after that, the next breakpoint is in the class receiving the parameter in my POJO DC class. In there, the object is NULL.
    Does anyone knows wat could be the reason??

    Hi Frank Nimphius-Oracle,
    That is precisely the problem.  The object is being passed as to the taskflow as an input parameter (getting it from my application scope bean). If I access the pageFlowScope inside my taskflow I see it and its there, correctely intialized. However, when I call a method call activity that consumes that object as parameter, all what it gets is null.
    The method that consumes this object is in a separate project, and its exposed in a POJO DC. I don't know if it has to be with the complexity of the object I am passing or what but I don't understand why its not being passed correctly to the DC Method.

  • Closing an anonymous stream in method call

    Will an anonymous stream in a method call be closed in the same manner an anonymous stream that is created in an object instantiation will be?
    I know this will close the anonymous FileInputStream:
    DataInputStream in =
    new DataInputStream(new FileInputStream("filename.txt"));
    /* ... code ... */
    in.close();But will this?
    MyPropertiesClass myPropertiesClass = new MyPropertiesClass();
    myPropertiesClass.store(new FileOutputStream("file.txt"));MyPropertiesClass extends Properties, and uses its store().
    I know the JavaDoc for Properties says:
    "After the entries have been written, the output stream is flushed. The output stream remains open after this method returns."
    My question is will the FileOutputStream("file.txt") be closed and garbage collected eventually after this method call because I don't have a reference to it? myPropertiesClass sticks around for a long time afterwards, will the FileOutputStream as well?
    Thanks for any insight,
    KJ

    My question is will the FileOutputStream("file.txt") be closed and garbage collected eventually after this method call because I don't have a reference to it? > myPropertiesClass sticks around for a long time afterwards, will the FileOutputStream as well?Your only hope would be if FileOutputStream overrode finalize and closed the stream there -- but it doesn't (check the API -- finalize isn't overridden). I doubt if Properties retains a reference to the OutputStream you pass to store -- why would it need to? In any case, the bottom line is that output stream isn't being closed until your process exits.
    Why not bite the bullet and rewrite that line of code so that you can explicitly close the stream?
    OutputStream out = new FileOutputStream("file.txt");
    try {
        myPropertiesClass.store(out);
    } finally {
        out.close();
    }It's not one line, but who cares? You could wrap it up in a short utility method:
    static void storeProperties(Properties properties, String path) {...}

Maybe you are looking for

  • BUG: Verizon iPhone Visual Voicemail Not Working with Ported Number

    I ported my number from ATT to Verizon with the new iPhone 5. Visual Voicemail keeps asking me to set it up with a password. Then it says unauthorized. I spent an hour on the phone with Verizon support. They said I had to wipe my phone and set it up

  • Other screens.

    Greetings. I am a teacher of English as a Foreign Language. I bought an iPod Touch (32GB) and put all the audio material I'm using in my current classes onto it. Wonderful! I also put some EFL video material onto it. Again, wonderful. (Many thanks to

  • Cannot share screens, help please.

    computers: imac : 10.5.2, one gig memory, a second monitor is hooked up to the imac, router is dlink DI-524 (at different location...) the imac is brand new. g5 dual 2.0 : 10.5.2 ghz, 2.5 gigs memory, linksys router wireless g broadband router with r

  • How do I transfer photos from iphone4 to windows

    I go to my computer and the iphone shows up but it can not find the pictures on the phone. It shows as empty

  • How can we find the some deleted record..

    Hi In my server one of the source system is deleted. i want to findout who was deleted that source system. Thanks Regards