Detection of proxy node outage

Question regarding detection of proxy node outage in extend client.
My impression is that once connection established, you won't notice that proxy node was gone until next time you try to access cluster (get, put, etc. etc.).
Or there is anything like MemberListener thing that client will be notified when proxynode is gone?
This cause us some issue since we will add a map listener within extend client, but we won't receive any notification if the proxy node is gone.
To address this issue, we are implement a heartbeat approach which client will have a background thread perform periodically cache get to ensure that the connection still valid.
Above approach worked fine for single proxy node approach, since if the heartbeat check failed, we know something wrong.
However, the heartbeat approach create new issue when there are multiple proxy nodes configured in client's remote cache scheme.
This is what we observed.
An extend client configured with a remote cache scheme has proxyA and proxyB as proxy list.
1. Extend client start with connection to proxyA.
2. Extend client subscribe to key ABC for cacheX
3. Kill proxyA process.
4. The background heartbeat check thread perform a heartbeat get to cacheX. Looks like during this cacheX.get() operation, Coherence will establish a new connection to proxyB automatically. Our application doesn't even notice there is a proxy node switch.
Now the issue is if an update to key ABC occurred between step 3 and 4. Our application won't receive any notification at all. And we don't even notice there is a new connection created to a different proxynode at all.
Our business requirement require us not to miss any entry update notification in extend client (unless if all proxy nodes are down) as long as there is at least one proxy node available.
Is there any better approach for this requirement?

J.K.
Turn out that member listener approach still have chance to lost update notification.
We found out that the update occurred between MemberLeft event notification and re-add map listener will be lost.
That window is small, however, our business requirement require that no lost of update event at all as long as the update operation succeeded (the update could be performed by another extend client connect to different proxy node).
Is it even possible to ensure that requirement using extend client?
Regards,
Chen

Similar Messages

  • Is usage of Proxy nodes expensive ?

    Hi,
    I would like to know how expensive is the usage of proxy node from performance
    point of view.
    Thanks
    Girish

    ABAP Proxy Runtime
    http://help.sap.com/saphelp_nw04/helpdata/en/02/265c3cf311070ae10000000a114084/frameset.htm
    ABAP CLIENT PROXY
    /people/ravikumar.allampallam/blog/2005/03/14/abap-proxies-in-xiclient-proxy
    ABAP SERVER PROXY
    /people/siva.maranani/blog/2005/04/03/abap-server-proxies
    This material will help you a lot.
    regards
    Nisar

  • Detect the proxy and the port number automatically

    Hello,
    Can someone provide me with an example how to detect the proxy host name and the port automatically?
    Thanks in advance,

    Hello,
    If you create different desktop, phone and tablet sites in Muse, then they redirect automatically to the appropriate site when accessed from different devices, nothing needs to be done to make them redirect correctly.
    Hope this helps.
    Cheers
    Parikshit

  • Detect recursive XSD node

    I have a problem with an XSD in PI 7.11. When loading into a mapping, it leads to an OutOfMemory error. The reason is that the XSD contains recursive nodes, which is not allowed for PI XSD's. So far so good.
    The problem is how to find out which of the node(s) is recursive. It is a huge structure. In the PI XSD editor, I can right-click on a node and then expand recursively. If it contains a recursive node, it gives an error message. For small structures, it shows the recursive node in red. But for large structures, the GUI just stucks after the error message and does not respond anymore. So I do not know which subnode caused the problem.
    This means I have no automated way to detect the recursive nodes if they occur in very large structures (which is the case here). Any hints ? I want to avoid to open manually hundreds of nodes and browse for a red color.
    Is there any XML tool outside PI which can detect and display such node names ? In XmlSpy I did not find such a function.
    Hint 1 for SAP product developers: it would be nice if the GUI did not stuck in such cases, but give a detailed message which node(s) cause the problem ! Same for the mapping.
    Hint 2: the XSD is this one: http://docs.oasis-open.org/ubl/cs-UBL-2.0/xsd/maindoc/UBL-Order-2.0.xsd
    CSY

    hi,
    >>>Hint 1 for SAP product developers: it would be nice if the GUI did not stuck in such cases, but give a detailed message which node(s) cause the problem ! Same for the mapping.
    please put those suggestions here:
    https://cw.sdn.sap.com/cw/community/ideas/sap_netweaver/sap_netweaver_process_orchestration_process_integration
    with comment
    this is the way we can raise it with SAP during our GSIG for PI meetings
    Thank you,
    Regards,
    Michal Krawczyk

  • Detecting client proxy settings

    Dear All,
    Can anyone tell me how to detect client proxy settings from a java application (not in a browser).
    I tried System.getProperties().getProperty("http.proxyhost") without success.
    Our application is distribuited using Java Web Start technology and needs to know proxy settings to connect to the remote host thru an unknown proxy server.
    Solution to this problem is very important and urgent! Please help me!
    Thanks in advance!

    Look for
    proxyHost
    proxyPort
    or (for https)
    https.proxyHost
    https.proxyPort

  • Dynamic proxy nodes within Webflow???

    Hi all,
    we are trying to implement a dynamic set of webflows, i.e. we wan't to have reusable
    sub webflows being used in several parent webflows. In order to this we need to
    have a dynamic component at the end of a sub webflow in order to move back to
    the appropriate node in the parent webflow. We do not wan't to explicitly configure
    every path to every parent webflow in the sub flow. In the ideal world, the sub
    webflow would be a black box that we could include in a parent webflow, however
    the world is not ideal and we are therefore investigating our possibilities. Does
    anyone have a great solution for this?
    What we are thinking of is storing the namespace and the target node of the parent
    webflow in session before entering a sub flow, the sub flow would then (when finished)
    get the parent namespace and node and proxy back. However proxy nodes are not
    dynamic so ???
    Any ideas or suggestions are appreciated,
    thanks,
    Mikkel

    As far as i know, you wouldn't even be able to do this by generating the byte-code to override
    the methods by hand. I think the verifyer checks for the overriding of final methods - so even if
    you generated such a class, it would fail class loading.I can't remember what the licence says, but it may be possible to use a modified version of java.lang.Object in which they're not final provided you only use it internally and don't distribute it.

  • RAC node outage causes SOA Suite 10.1.3.4 BPEL  failure

    Using weblogic 9.2 and the SOA Suite 10.1.3.4. We use a 10g Oracle RAC ( 2 nodes ); the WL cluster has a multi data source of 2 pools, each pool pointing to a single node in the rac, each pool deployed to the cluster, and the multi data source in load-balancing mode.
    So the other night, one of the db nodes had a hardware failure ( ironically, with a remote monitoring / management card ). Annoying, but it should not have caused the BPEL servers to be in "FAILED NOT RESTARTABLE" status the next morning.
    Jun 9, 2009 12:10:07 AM EDT> <Warning> <JDBC> <BEA-001129> <Received exception while creating connection for pool "esbaqds2": Io exception: The Network Adapter could not establish the connection>
    SEVERE: Destroying JMSDequeuer failed
    oracle.jms.AQjmsException: Connection has been administratively destroyed. Reconnect.
    at oracle.jms.AQjmsSession.preClose(AQjmsSession.java:980)
    at oracle.jms.AQjmsObject.close(AQjmsObject.java:409)
    at oracle.jms.AQjmsSession.close(AQjmsSession.java:1020)
    at oracle.tip.esb.server.dispatch.JMSDequeuer.destroy(JMSDequeuer.java:419)
    at oracle.tip.esb.server.dispatch.JMSDequeuer.destroyWithoutUnsubscribing(JMSDequeuer.java:395)
    at oracle.tip.esb.server.dispatch.JMSDequeuer.dequeue(JMSDequeuer.java:175)
    at oracle.tip.esb.server.dispatch.agent.ESBWork.process(ESBWork.java:174)
    at oracle.tip.esb.server.dispatch.agent.ESBWork.run(ESBWork.java:132)
    at weblogic.connector.security.layer.WorkImpl.runIt(WorkImpl.java:108)
    at weblogic.connector.security.layer.WorkImpl.run(WorkImpl.java:44)
    at weblogic.connector.work.WorkRequest.run(WorkRequest.java:93)
    at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
    followed by a 2 GB log file containing 1.3 million iterations of the following within the next 10 minutes before the managed servers failed.
    java.lang.NullPointerException
    at java.lang.String.<init>(String.java:144)
    at oracle.tip.esb.server.dispatch.JMSDequeuer.dequeue(JMSDequeuer.java:168)
    at oracle.tip.esb.server.dispatch.agent.ESBWork.process(ESBWork.java:174)
    at oracle.tip.esb.server.dispatch.agent.ESBWork.run(ESBWork.java:132)
    at weblogic.connector.security.layer.WorkImpl.runIt(WorkImpl.java:108)
    at weblogic.connector.security.layer.WorkImpl.run(WorkImpl.java:44)
    at weblogic.connector.work.WorkRequest.run(WorkRequest.java:93)
    at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
    Both managed instances of the BPEL cluster failed, even though the 1st node of the Oracle RAC was still available.
    Our 10.3 cluster, also using multi data sources to the same RAC for the OSB components, simply went on about its business using the remaining rac node pool.
    Seems to be a single point of failure...

    We haven't changed the JDBC connection string yet, but we did run a test in the same environment while Oracle support considers the situation.
    For the test, we simply shutdown one node of the RAC and watched to see what happens. Within the space of a minute, the JDBC "Failed Reserve Request Count" was increasing by thousands on every refresh of the screen. We restarted the RAC node after 5 minutes, by which time the "Failed Reserve Request Count" was over 190,000
    The 2 BPEL managed servers remained in Running status and each created a 660 MB log file within that 5 minutes. In the original outage, the nodes were down for about 15 minutes. Most of the logging is being generated from within the oracle.tip.esb classes, not by the weblogic classes. It looks like that once the pool pointing to the downed RAC node becomes disabled, the Oracle BPEL code is still trying to use it even though the multi-source JNDI is the published lookup:
    INFO: JMSDequeuer::createConnection - AQ Topics
    java.sql.SQLException: weblogic.common.ResourceException:
    esbaqds(esbaqds2): Pool esbaqds2 is disabled, cannot allocate resources to applications..
    esbaqds(esbaqds1): Pool esbaqds1 is disabled, cannot allocate resources to applications..
    at weblogic.jdbc.common.internal.JDBCUtil.wrapAndThrowResourceException(JDBCUtil.java:250)
    at weblogic.jdbc.common.internal.RmiDataSource.getPoolConnection(RmiDataSource.java:348)
    at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:364)
    at oracle.tip.esb.server.dispatch.JMSDequeuer.createAQConnection(JMSDequeuer.java:559)
    at oracle.tip.esb.server.dispatch.JMSDequeuer.dequeue(JMSDequeuer.java:159)
    at oracle.tip.esb.server.dispatch.agent.ESBWork.process(ESBWork.java:174)
    at oracle.tip.esb.server.dispatch.agent.ESBWork.run(ESBWork.java:132)
    at weblogic.connector.security.layer.WorkImpl.runIt(WorkImpl.java:108)
    at weblogic.connector.security.layer.WorkImpl.run(WorkImpl.java:44)
    at weblogic.connector.work.WorkRequest.run(WorkRequest.java:93)
    at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)
    Caused by: weblogic.common.ResourceException:
    esbaqds(esbaqds2): Pool esbaqds2 is disabled, cannot allocate resources to applications..
    esbaqds(esbaqds1): Pool esbaqds1 is disabled, cannot allocate resources to applications..
    at weblogic.jdbc.common.internal.MultiPool.searchLoadBalance(MultiPool.java:331)
    at weblogic.jdbc.common.internal.MultiPool.findPool(MultiPool.java:202)
    at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:77)
    at weblogic.jdbc.common.internal.RmiDataSource.getPoolConnection(RmiDataSource.java:346)
    ... 11 more
    SEVERE: Failed to process deferred message
    oracle.tip.esb.server.dispatch.QueueHandlerException: Error creating "weblogic.common.ResourceException: No good connections available."
    at oracle.tip.esb.server.dispatch.JMSDequeuer.createAQConnection(JMSDequeuer.java:661)
    at oracle.tip.esb.server.dispatch.JMSDequeuer.dequeue(JMSDequeuer.java:159)
    at oracle.tip.esb.server.dispatch.agent.ESBWork.process(ESBWork.java:174)
    at oracle.tip.esb.server.dispatch.agent.ESBWork.run(ESBWork.java:132)
    at weblogic.connector.security.layer.WorkImpl.runIt(WorkImpl.java:108)
    at weblogic.connector.security.layer.WorkImpl.run(WorkImpl.java:44)
    at weblogic.connector.work.WorkRequest.run(WorkRequest.java:93)
    at weblogic.work.ServerWorkManagerImpl$WorkAdapterImpl.run(ServerWorkManagerImpl.java:518)
    at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
    at weblogic.work.ExecuteThread.run(ExecuteThread.java:181)

  • How to add proxy node in message monitoring RWB

    Hi all,
    in RWB message monitoring , i can see two options in drop down list those are integration engine and adapter engine. i want to add one node for proxy run time also.
    can anybody let me know how to add a node for proxy runtime?
    any document or help will be appreciated
    Thanks
    sandeep sharma

    Hi,
    connect your SAP application system (like ERP, etc.)
    to SLD - the same one as PI uses (you need to have PIRWBUSER on ERP too)
    then start transaction SPROXY and build and interface on it
    start it and check if you see the new node in message monitoring
    Regards,
    Michal Krawczyk

  • How to detect missing xml node before using countNodes?

    Below is my xml sample. Right now I use countNodes to count # of <Book> returned.
    <ListOfBook>
    <Book>A</Book>
    <Book>B</Book>
    <Book>C</Book>
    </ListOfBook>
    When there's no data, I got
    </ListOfBook>
    My countNodes() failed and generated errors. How do I avoid this? Can I detect if <Book> exists first before doing countNodes() and if so how?
    I'm using SOA 11.1.1.2
    Thanks

    Actualy the simplest way to be certain your <ListOfBook> is empty is to check the first element:
    If $ListOfBook/Book[1] != ''
    If there aqre no Books - nothing happens.
    About count nodes - it works. Pb=robably you have a mistake in countNodes definition (you can paste it here for commenting)

  • Apache proxy, Node.js and Default Websites

    Hello everyone !
    I'm currently using a mac mini server under OS X Mavericks (10.9.1) and Server 3.0.2
    I've been very happy with it, and found it was quite nice to use... until I decided to host a Ghost blog (https://ghost.org) on it. Ghost runs on Node.js (http://nodejs.org).
    I have a domain (domain.com), and two subdomains (www.domain.com and sub.domain.com).
    The server and it's default websites use sub.domain.com, with http://sub.domain.com redirecting to https://sub.domain.com
    I want to use both domain.com and www.domain.com for the blog.
    Using cloudflare for the DNS, I created a CNAME for domain.com, pointing to www.domain.com (domain.com CNAME www.domain.com).
    Node.js and Ghost install both went well, with Node.js listening on port 2368.
    I then started configuring a virtual host (www.domain.com) in the Server.app for the Ghost blog , along with an Apache Reverse Proxy, by editing www.domain.com's .conf and replacing everything in it by
    <VirtualHost 10.0.1.2:80>
         ServerName www.domain.com
         ProxyPreserveHost on
         ProxyPass / http://localhost:2368/
    </VirtualHost>
    Going to www.domain.com, I correctly end up on the Ghost blog.
    But, amusingly and annoyingly, when trying to access the default website through sub.domain.com... it's also the blog that shows up !
    After setting up another website (sub2.domain.com) in the Server.app and configuring the DNS appropriately at Cloudflare, I could notice that I end up on the default page for "empty" websites (the "welcome to Server... blabla" page).
    So the server's default website is the only one getting this issue...
    I've been spending two days on it, trying nearly every other Apache Reverse Proxy configuration I could find (yes, even the weird one where you go through DNS settings that you can find somewhere in these forums).
    Anyway, some help would be greatly appreciated

    Ok... So, while I did not find a solution, I did find a workaround.
    Get ready people...
    First, create www.yourdomain.com on port 8080 in the Server App.
    Then, create www.yourdomain.com on port 80 in the Server App, and choose to make a redirection from this site to www.yourdomain.com:8080.
    After, go to the 0000_any_8080_www.yourdomain.com.conf file, and open it with textedit.
    Replace everything in it with
    <VirtualHost *:8080>
         ServerName www.domain.com
         ProxyPreserveHost on
         ProxyPass / http://localhost:2368/
    </VirtualHost>
    Save it (don't forget replace the original 0000_any_8080_www.yourdomain.com.conf with it if needed and to keep the.conf extension)
    And there you go !
    For SSL, do the same thing, except you need to replace the 80 port by the 443 port, and the 8080 port by the 8443. And don't forget the certificates, for both of them.

  • Java JRE 1.7 & 1.8 is not detecting the proxy (TMG) server

    Hi ,
    We are using the windows 7 64 bit OS and JRE 1.7 and 1.8. The Java and eclipse running behind the proxy server.
    We are using Microsoft Forefront TMG client.
    We are trying to connect the maven / eclipse market place but its not detecting the TMG server.
    Up to java 1.6 there no error while accessing maven / eclipse market place. after upgrade the java we are facing the issue.
    Issue: I am unable to connect to Maven Repository(https://repo.maven.apache.org/maven2/....) when I use Java 1.7
    where as I am able to connect to maven repository when I use Java 1.6
    I used the windows command prompt.
    Got below message
    "[WARNING] Failed to retrieve plugin descriptor for org.apache.maven.plugins:maven-clean-plugin:2.5: Plugin org.apache.maven.plugins:maven-clean-plugin:2.5 or one of its dependencies could not be resolved: Failed to read artif
    act descriptor for org.apache.maven.plugins:maven-clean-plugin:jar:2.5
    org.apache.maven.plugin.PluginResolutionException: Plugin org.apache.maven.plugins:maven-clean-plugin:2.5 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven
    -clean-plugin:jar:2.5
    at org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolve(DefaultPluginDependenciesResolver.java:122)
    at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getPluginDescriptor(DefaultMavenPluginManager.java:148)
    at org.apache.maven.plugin.DefaultBuildPluginManager.loadPlugin(DefaultBuildPluginManager.java:81)
    at org.apache.maven.plugin.prefix.internal.DefaultPluginPrefixResolver.resolveFromProject(DefaultPluginPrefixResolver.java:138)
    at org.apache.maven.plugin.prefix.internal.DefaultPluginPrefixResolver.resolveFromProject(DefaultPluginPrefixResolver.java:121)
    at org.apache.maven.plugin.prefix.internal.DefaultPluginPrefixResolver.resolve(DefaultPluginPrefixResolver.java:85)
    at org.apache.maven.lifecycle.internal.MojoDescriptorCreator.findPluginForPrefix(MojoDescriptorCreator.java:260)
    at org.apache.maven.lifecycle.internal.MojoDescriptorCreator.getMojoDescriptor(MojoDescriptorCreator.java:220)
    at org.apache.maven.lifecycle.internal.DefaultLifecycleTaskSegmentCalculator.calculateTaskSegments(DefaultLifecycleTaskSegmentCalculator.java:103)
    at org.apache.maven.lifecycle.internal.DefaultLifecycleTaskSegmentCalculator.calculateTaskSegments(DefaultLifecycleTaskSegmentCalculator.java:83)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.jav

    Refer similar post.
    https://community.oracle.com/thread/3634249

  • Detect default proxy settings

    I am creating an applet which needs to get data from the internet. Since the applet will be run behind different firewalls, I was wondering how to detect the default proxy, i.e. the one the browser is using. Many apps I have seen have an option 'auto detect proxy' and I was wondering how to implement this in an applet.
    Thanks

    you might find that proxy settings are in the registry somewhere; i'd be guessing that's how these apps do it.
    as your app is java it shouldn't typically be looking up registry keys, but if it's only going to be running on windows, then .....

  • Q: Detecting when a Node is Detatched from the Scene Graph, How?

    Hi All,
    My nodes are regiserted observers with an Async service. I need to know when a nodes is detached/removed from the Scene graph so that I can remove it from the Async service.
    The only thing I can think of at the moment is to bind to Node.scene but I would like to think there is a more "standardized" way of doing this (I don't want to re-invent the wheel).
    Example (improved from 1st post):
    class MyCustomNode extends CustomNode {
            var sceneMonitor:Scene = bind scene on replace {onSceneChange()};       
            public var onSceneChange:function():Void = function():Void{
                    if (scene == null){
                        println("we have no scene");
                    } else {
                        println("we have a scene");
    }Edited by: AndrewHughes on Oct 12, 2009 6:13 AM

    You can add an "initialized" flag into your CustomNode and set it true in the postinit block
    var initialized = false;
    postinit { initialized = true }The parent and scene of the node won't be set until after the CustomNode is past the postinit phase. You can use this flag to determine whether or not the change in parent or scene is because the node is being added, or because the node is being removed.
    var fubar = bind scene on replace {
        if (initialized and scene == null) {
            // cleanup
    }You could also use the old value and the new value in the on replace:
    var fubar = bind scene on replace oldscene = newscene {
        if (oldscene != null and newscene == null) {
            // cleanup
    }

  • Nokia software updater cant detect my proxy server

    I download the nokia software updater and I have n73. The problem is there is no configuration in this software about proxy server settings. When I click the nokia software updater it says Network Connection Lost...
    Can anyone help in this...it you ask i will not use proxy server...CANT be done. I must use the proxy server if not no internet connection.

    Try Ovi Suite.
    If you find my post helpful please click the green star on the left under the avatar. Thanks.

  • Detecting proxy

    Hi All,
    pls help me in my problem.
    I am doing web chat application
    In my application when my client connected to server through proxy,
    I hard code the proxy connection. I am giving IP of proxy in my client program. the problem is how the client knows which proxy is using because I hard code IP of proxy.
    so tell me how my client detect the proxy in local network.
    is there any necessary of setting browser through program
    help me
    it's urgent

    Hi,
    I am looking for solution to this very problem. Do you have a solutions to this now?
    -mkm

Maybe you are looking for

  • How do I re-install a product which was purchased over 30 days ago?

    I downloaded Adobe Photoshop cs5 Extended ages ago and now that I want to re-install it I can't find the product. I tried to find it in my order history however it was over 30 days ago.

  • Business Partners and Qualifications

    My customer is intending to use Business Partners (BUP003 - Employee) to represent resources in the MRS (Multi Resource Scheduling) application.  My challenge is that I am unable to assign a qualification to a Business Partner (BUP003) using transact

  • Question about Using Playlists

    You know how when you create a new playlist, iTunes shows you this large playlist editor to the right of the "Songs" view?   When you're done it closes. What I'm trying to figure out is to how to open an existing playlist over there.  I only ever see

  • Access Connections: proxy + homepage settings not taken over in Firefox and IE since upgrade to 5.0

    Hi, I got a really annoying problem since upgrading to AC 5.0: both in IE 6.0 and FF 3.0 the proxy and homepage settings are not taken over when switching the network profiles. A first attempt based on a statement found here http://www.thinkpad-forum

  • Trouble with deleting mail in Gmail

    Before I upgraded to iOS 5 last night, when I deleted an email in gmail using the mail app on my phone, it would move it into the trash.  From here I could delete it out of the trash, and it would be gone for good.  Since I've updated, when I move an