How to ensure a Coherence Extend TCP service

Hi,
We have defined an Extend TCP service within our <caching-schemes> element as follows:
<proxy-scheme>
<service-name>ExtendTcpProxyService</service-name>
<thread-count>5</thread-count>
<acceptor-config>
<tcp-acceptor>
<local-address>
<address>localhost</address>
<port system-property="tangosol.coherence.tcpproxy.port">6090</port>
<reusable>true</reusable>
</local-address>
<keep-alive-enabled>true</keep-alive-enabled>
<tcp-delay-enabled>true</tcp-delay-enabled>
</tcp-acceptor>
</acceptor-config>
<autostart>true</autostart>
</proxy-scheme>
However, we are not using com.tangosol.net.DefaultCacheServer as the entry point for our application and would prefer to continue to use our own main() method, ensuring caches as required.
Given this, I understand that the autostart element has no effect. Clients are unable to connect and no TCP listener appears to have been started.
Can you give a demonstration of how to call ensureService(.., ...) to start the proxy service? Is there any reason that you would advise us against this, e.g. instead starting DefaultCacheServer inside a separate process?
Many thanks,
James

Hi James,
In your main you can invoke DefaultCacheServer.startDaemon() method.
Regards,
Dimitri

Similar Messages

  • Coherence *Extend-TCP configuration not working

    Hi,
         I was trying to setup the Coherence *Extend-TCP configuration on my solaris box.
         To start with, i'm trying to start a Cache server instance by using the cluster-side configuration XML (given at URL below)
         http://wiki.tangosol.com/display/COH32UG/Configuring+and+Using+Coherence*Extend
         But while starting its throwing me the below error. The Coherence version that i'm using is 3.2/353. Please advise.
         Exception in thread "main" java.lang.IllegalArgumentException: The "Proxy" element is missing a required acceptor configuration element
         at com.tangosol.coherence.component.util.daemon.queueProcessor.service.ProxyService.configure(ProxyService.CDB:30)
         at com.tangosol.coherence.component.util.SafeService.startService(SafeService.CDB:5)
         at com.tangosol.coherence.component.util.SafeService.getRunningService(SafeService.CDB:26)
         at com.tangosol.coherence.component.util.SafeService.ensureRunningService(SafeService.CDB:1)
         at com.tangosol.coherence.component.util.SafeService.start(SafeService.CDB:9)
         at com.tangosol.net.DefaultConfigurableCacheFactory.ensureService(DefaultConfigurableCacheFactory.java:775)
         at com.tangosol.net.DefaultCacheServer.start(DefaultCacheServer.java:138)
         at com.tangosol.net.DefaultCacheServer.main(DefaultCacheServer.java:60)
         regards
         Mike

    Sorry,
         I noticed that the above error occurs for version 3.1.1 (& not for 3.2) as previously
         specified in previous message (above). My apologies.
         As a follow-up, i've now installed 3.2 jars on my environment & i noticed that the
         above error doesnt occur for this version. The cache server seems to be coming
         up fine now (with the appropriate TCP/IP configuration tag in the xml).
         But when i try to run my client application (which attempts to connect to this
         remote cache server), it throws an InvocationTargetException error (full exception
         below).
         The error indicates that i'm missing some elements in the XML configuration.
         Exception
         (Wrapped) java.lang.reflect.InvocationTargetException
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
              at java.lang.reflect.Method.invoke(Unknown Source)
              at com.tangosol.net.extend.AdapterFactory.ensureCacheServiceAdapter(AdapterFactory.java:69)
              at com.tangosol.net.DefaultConfigurableCacheFactory.ensureService(DefaultConfigurableCacheFactory.java:729)
              at com.tangosol.net.DefaultConfigurableCacheFactory.ensureCache(DefaultConfigurableCacheFactory.java:650)
              at com.tangosol.net.DefaultConfigurableCacheFactory.configureCache(DefaultConfigurableCacheFactory.java:831)
              at com.tangosol.net.DefaultConfigurableCacheFactory.ensureCache(DefaultConfigurableCacheFactory.java:284)
              at com.tangosol.net.CacheFactory.getCache(CacheFactory.java:622)
              at com.tangosol.net.CacheFactory.getCache(CacheFactory.java:600)
              at com.tangosol.examples.explore.SimpleCacheClient.main(SimpleCacheClient.java:25)
         Caused by: java.lang.IllegalArgumentException: Missing required initiator child configuration element: <extend-cache-scheme tier='front'>
         <scheme-name>extend-direct</scheme-name>
         <service-name>ExtendTcpCacheService</service-name>
         <initiator-config tier='front'>
         <tcp-initiator>
         <remote-addresses>
         <socket-address>
         <address>gpblnx1d.nam.nsroot.net</address>
         <port>32000</port>
         </socket-address>
         </remote-addresses>
         <connect-timeout>10s</connect-timeout>
         <request-timeout>5s</request-timeout>
         </tcp-initiator>
         </initiator-config>
         </extend-cache-scheme>
              at com.tangosol.coherence.extend.component.comm.Adapter.getInitiatorElement(Adapter.CDB:13)
              at com.tangosol.coherence.extend.component.comm.adapter.CacheServiceStub.configure(CacheServiceStub.CDB:5)
              at com.tangosol.coherence.extend.component.application.library.generic.CoherenceExtend.createCacheServiceStub(CoherenceExtend.CDB:4)
              at com.tangosol.coherence.extend.component.application.library.generic.CoherenceExtend.ensureCacheServiceStub(CoherenceExtend.CDB:15)

  • Coherence extend Proxy service with no storage.

    Hi
    I am implementing coherence where I have the requirement as follows.
    1. Create two Coherence Servers in Weblogic console. These are cache stores using replicated cache scheme.
    2. Create tow Coherence servers which acts as proxy. These should not contain any cache.
    Can some body tell me how to create the cache config for the step2 i.e proxy servers? when I created the proxy server without giving the cache names I am getting cache not found error.

    Hi Sri,
    There are various options available for this but...
    If I was building this application I would probably make your Web Cluster storage-disabled members of the Coherence cluster (assuming they are Java). This will give them quicker access to data than using Extend. You would then not need the proxy servers. I would use distributed caches in your Coherence storage nodes rather than replicated and then configure near-caches in your Web layer. If you wanted to you could use the resource from the servers that you were using for proxy servers as storage nodes as this would give you a little more capacity and make the cluster a little mode durable - i.e. less prone to complete failure if you lost a node.
    So, your coherence-cachestore-config file would look like this
    <cache-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config"
            xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config coherence-cache-config.xsd">
        <defaults>
            <serializer>pof</serializer>
        </defaults>
        <caching-scheme-mapping>
            <cache-mapping>
                <cache-name>products</cache-name>
                <scheme-name>distributed-scheme</scheme-name>
            </cache-mapping>
        </caching-scheme-mapping>
        <caching-schemes>
            <distributed-scheme>
                <scheme-name>distributed-scheme</scheme-name>
                <service-name>DistributedCacheScheme</service-name>
                <backing-map-scheme>
                    <local-scheme/>
                </backing-map-scheme>
                <autostart>true</autostart>
            </distributed-scheme>
        </caching-schemes>
    </cache-config>The cache configuration for the Web layer would be similar but have near caching
    <cache-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config"
            xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config coherence-cache-config.xsd">
        <defaults>
            <serializer>pof</serializer>
        </defaults>
        <caching-scheme-mapping>
            <cache-mapping>
                <cache-name>products</cache-name>
                <scheme-name>near-scheme</scheme-name>
            </cache-mapping>
        </caching-scheme-mapping>
        <caching-schemes>
            <near-scheme>
                <scheme-name>near-scheme</scheme-name>
                <front-scheme>
                    <local-scheme>
                        <high-units>1000</high-units>
                    </local-scheme>
                </front-scheme>
                <back-scheme>
                    <scheme-ref>distributed-scheme</scheme-ref>
                </back-scheme>
            </near-scheme>
            <distributed-scheme>
                <scheme-name>distributed-scheme</scheme-name>
                <service-name>DistributedCacheScheme</service-name>
                <backing-map-scheme>
                    <local-scheme/>
                </backing-map-scheme>
                <autostart>true</autostart>
            </distributed-scheme>
        </caching-schemes>
    </cache-config>The above near cache would only hold 1000 entries, and Coherence will manage expiry of this. You could tune this figure, other other expiry setting to optimize the data access for your Web layer - as described in the near cache docs here http://docs.oracle.com/cd/E24290_01/coh.371/e22837/cache_config.htm#BABGFCII Storage disbaled nodes with near caches are not always the best approach, but given you are using them in a long-live Web layer and the data does not change very often, I think they would be good for you to use.
    As I said though, as with a lot of things in Coherence, there are a number of options available to you, some good, some not so good; the above option is just the one I would choose. Given the requirements you have mentioned there is actually not much wrong with the solution you have chosen apart from access to data is slower as there are always two network hops involved with the proxy in the middle and it would not scale up so well if you wanted to grow the system.
    JK

  • Coherence *Extend configuration

    Hello,
    To enable Coherence Extend, we should define a proxy-scheme in our cluster cache-config that defines a coherence *extend proxy-service, containing a tcp-acceptor with a local  address and port.
    Can there be only 1 such an extend proxy service running on the same node?  Or should we redefine the extend proxy-service configuration for each cache server that is running on the same node (to use a different port)? In both cases, we have to define at least 2 new cache-config files - one with the extend proxy service and one without. Is this correct?
    We're now trying to run 2 cache servers on the same node with an extend proxy service.  When we try to start the 2nd cache server, we get the following exception (which is quite normal because the coherence proxy service tries to bind to a socket that is already in use by the other cache server instance that is running the extend proxy service):
    2010-01-21 09:48:10.923/7.865 Oracle Coherence GE 3.5.2/463 <Error> (thread=Proxy:ExtendTcpProxyService:TcpAcceptor:TcpProcessor, member=1): error binding ServerSocket to 10.2.12.144:9099: java.net.BindException: Address already in use
    at sun.nio.ch.Net.bind(Native Method)
    at sun.nio.ch.ServerSocketChannelImpl.bind(Unknown Source)
    at sun.nio.ch.ServerSocketAdaptor.bind(Unknown Source)
    at com.tangosol.coherence.component.util.daemon.queueProcessor.service.peer.acceptor.TcpAcceptor.configureSocket(TcpAcceptor.CDB:27)
    at com.tangosol.coherence.component.util.daemon.queueProcessor.service.peer.acceptor.TcpAcceptor$TcpProcessor.onEnter(TcpAcceptor.CDB:25)
    at com.tangosol.coherence.component.util.Daemon.run(Daemon.CDB:14)
    at java.lang.Thread.run(Unknown Source)
    Is there a workaround that makes it possible to use the same cache configuration (containing coherence *extend proxy-service, with tcp-acceptor) with different cache servers on the same machine? 
    If not, what is the best practice to configure the *extend proxy service?
    Thanks in advance

    you can inject system properties into your coherence cache configuration as follows:
    <tcp-acceptor>
    <local-address>
    <address system-property="wouters.address">localhost</address>
    <port system-property="wouters.port">1234</port>
    </local-address>
    </tcp-acceptor>
    The above example will default to localhost:1234, however you can override these with system properties. This will allow you to reuse the same config, but tailor it to your application.
    Cheers,
    Neville.

  • Coherence Extend & JMS

    Hi,
    I was trying to get a Coherence Extend client to talk to a proxy via JMS. I can see both client and proxy connect to the queue, but the client throws a timeout exception. I am including the stack trace. This is using version 3.4.rc3.
    I have 3 questions.
    1) I do not see much referencing JMS. Is this something i should be using?
    2) What are the pro's/con's to using JMS? The biggest pro i see is that i can have multiple proxies listen on the same queue. This would seem to simplify my Extend configuration. Any performance impact with JMS?
    3) What would cause the timeout? Any clue?
    2008-09-16 15:24:35.010 Oracle Coherence GE 3.4/403 Release Candidate 3 <D5> (thread=ExtendJmsCacheService:JmsInitiator, member=n/a): Started: JmsInitiator{Name=ExtendJmsCacheService:JmsInitiator, State=(SERVICE_STARTED), ThreadCount=0, Codec=Codec(Format=POF), PingInterval=0, PingTimeout=5000, RequestTimeout=5000, ConnectTimeout=10000, QueueConnectionFactoryName=cn=BIGBOYJMS,cn=ibmjms, QueueName=cn=PREFERENCES.DEV.1,cn=ibmjms, MessageExpiration=0, MessagePriority=1, MessageDeliveryMode=NON_PERSISTENT}
    2008-09-16 15:24:35.075 Oracle Coherence GE 3.4/403 Release Candidate 3 <Info> (thread=main, member=n/a): Connected to queue://BIGBOYJMS/AMQ.48CAD39620002202?persistence=1
    Exception in thread "main" com.tangosol.net.RequestTimeoutException: request timed out after 5000 millis
    at com.tangosol.coherence.component.net.extend.message.Request$Status.waitForResponse(Request.CDB:58)
    at com.tangosol.coherence.component.net.extend.Channel.request(Channel.CDB:20)
    at com.tangosol.coherence.component.net.extend.Channel.request(Channel.CDB:1)
    at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Peer.openConnection(Peer.CDB:15)
    at com.tangosol.coherence.component.net.extend.Connection.open(Connection.CDB:5)
    at com.tangosol.coherence.component.util.daemon.queueProcessor.service.peer.Initiator.ensureConnection(Initiator.CDB:12)
    at com.tangosol.coherence.component.net.extend.remoteService.RemoteCacheService.openChannel(RemoteCacheService.CDB:5)
    at com.tangosol.coherence.component.net.extend.RemoteService.doStart(RemoteService.CDB:11)
    at com.tangosol.coherence.component.net.extend.RemoteService.start(RemoteService.CDB:5)
    at com.tangosol.coherence.component.util.SafeService.startService(SafeService.CDB:28)
    at com.tangosol.coherence.component.util.safeService.SafeCacheService.startService(SafeCacheService.CDB:5)
    at com.tangosol.coherence.component.util.SafeService.ensureRunningService(SafeService.CDB:27)
    at com.tangosol.coherence.component.util.SafeService.start(SafeService.CDB:14)
    at com.tangosol.net.DefaultConfigurableCacheFactory.ensureService(DefaultConfigurableCacheFactory.java:841)
    at com.tangosol.net.DefaultConfigurableCacheFactory.ensureService(DefaultConfigurableCacheFactory.java:763)
    at com.tangosol.net.DefaultCacheServer.start(DefaultCacheServer.java:140)
    at com.tangosol.net.DefaultCacheServer.main(DefaultCacheServer.java:61)
    2008-09-16 15:24:40.078 Oracle Coherence GE 3.4/403 Release Candidate 3 <Error> (thread=main, member=n/a): Error while starting service "ExtendJmsCacheService": com.tangosol.net.RequestTimeoutException: request timed out after 5000 millis
    at com.tangosol.coherence.component.net.extend.message.Request$Status.waitForResponse(Request.CDB:58)
    at com.tangosol.coherence.component.net.extend.Channel.request(Channel.CDB:20)
    at com.tangosol.coherence.component.net.extend.Channel.request(Channel.CDB:1)
    at com.tangosol.coherence.component.util.daemon.queueProcessor.service.Peer.openConnection(Peer.CDB:15)
    at com.tangosol.coherence.component.net.extend.Connection.open(Connection.CDB:5)
    at com.tangosol.coherence.component.util.daemon.queueProcessor.service.peer.Initiator.ensureConnection(Initiator.CDB:12)
    at com.tangosol.coherence.component.net.extend.remoteService.RemoteCacheService.openChannel(RemoteCacheService.CDB:5)
    at com.tangosol.coherence.component.net.extend.RemoteService.doStart(RemoteService.CDB:11)
    at com.tangosol.coherence.component.net.extend.RemoteService.start(RemoteService.CDB:5)
    at com.tangosol.coherence.component.util.SafeService.startService(SafeService.CDB:28)
    at com.tangosol.coherence.component.util.safeService.SafeCacheService.startService(SafeCacheService.CDB:5)
    at com.tangosol.coherence.component.util.SafeService.ensureRunningService(SafeService.CDB:27)
    at com.tangosol.coherence.component.util.SafeService.start(SafeService.CDB:14)
    at com.tangosol.net.DefaultConfigurableCacheFactory.ensureService(DefaultConfigurableCacheFactory.java:841)
    at com.tangosol.net.DefaultConfigurableCacheFactory.ensureService(DefaultConfigurableCacheFactory.java:763)
    at com.tangosol.net.DefaultCacheServer.start(DefaultCacheServer.java:140)
    at com.tangosol.net.DefaultCacheServer.main(DefaultCacheServer.java:61)
    thanx
    kevin

    Hi Kevin,
    Please file a MetaLink issue that includes detailed information about your JMS provider (vendor, version, configuration, etc.).
    In the meantime, I'd suggest taking a look at Coherence*Extend-TCP. In general, it is faster, more scalable, and much lighter weight than the JMS binding:
    http://wiki.tangosol.com/display/COH34UG/Configuring+and+Using+Coherence+Extend#ConfiguringandUsingCoherenceExtend-ConfiguringandUsingCoherenceExtendTCP
    Regards,
    Jason

  • Coherence-Extend and Continuous Query performance

    Hi,
    I am trying to evaluate the performance impact of continous queries, when using coherence extend (TCP). The idea is that desktop clients will be running continuous queries against a cluster, and other processes will be updating the data in that cluster. The clients themselves take a purely read-only view of the data.
    In my tests, I find that the updater process takes about 250ms to update 5000 values in the cache (using a putAll operation). When I have a continuous query running against a remote cache, linked with coherence extend, the update time increases to about 1500ms. This is not CPU bound.
    Is this what people would expect?
    If so this raises questions to me about:
    1) slow subscribers - what if one of my clients is very badly behaved? Can I detect this and/or take action?
    2) conflation of updates - can Coherence do conflation?
    3) can I get control to send object deltas over the wire rather than entire objects?
    Is this a use case for which CoherenceExtend and continuous queries were designed?
    Robert

    Yes, it is certainly possible, although depending on your requirements it may be more or less additional coding. You have a few choices. For example, since you have a CQC on the cache, you could conceivably aggregate locally (on any event). In other words, since all the data are local, there is no need to do the parallel aggregation (unless it is CPU limited). Depending on the aggregation, you may only have to recalculate part of it.
    You can access the internal data structure (Map) within the CQC as follows:
    Map map = cqc.getInternalCache();
    // now we can do aggregation
    NamedCache cache = new WrapperNamedCache(map);
    cache.aggregate(..);More complex approaches would only recalculate portions based on the event, or (depending on the function) might use the event to adjust the aggregated results.
    Peace,
    Cameron Purdy | Oracle Coherence
    http://coherence.oracle.com/

  • Coherence*Extend remote-addresses

    We're trying to use multiple addresses for our Coherence*Extend clients to provide load-balancing and redundancy. To accomplish this, we've configured our clients with multiple socket-address entries:
    <remote-addresses>
    <socket-address>
    <address>proxyHost1</address>
    <port>9099</port>
    </socket-address>
    <socket-address>
    <address>proxyHost2</address>
    <port>9099</port>
    </socket-address>
    <socket-address>
    <address>proxyHost3</address>
    <port>9099</port>
    </socket-address>
    </remote-addresses>
    This works fine for failure situations, however, in our testing it appears that the client will connect to the nodes in a round-robin method starting with the last defined host. So, with the above configuration every client will connect to proxyHost3, and only connect to proxyHost2 if host3's connection failed. We could maintain a separate configuration file across all of our nodes shuffling the order, however this could be problematic and would not be preferred.
    Is there a better way to effectively distribute the client connections across our pool of proxies?
    Thanks,
    -Allen

    Hi Allen,
    The Coherence*Extend TCP/IP client randomizes the list of socket addresses before attempting the initial connect, so I'm not sure why you always see your clients connect to the last address in the list. I ran a quick test using both the Java and .NET client, but could not reproduce what you are seeing. Are you sure that the proxyHostX host names resolve to different IP addresses on the test client machine?
    Regards,
    Jason

  • Using Wireless technology to extend LAN services to remote building

    Hi, have a requirement to extend LAN services to a building that is 50m - 60m separate from the main facility. We currently have a Cisco WS-C3750G-24WS-S25 WLC and 1131 APs deployed. I am looking for sugestions on how I would go about extending LAN services to this remote building utilising the Wireless technology.
    Thanks in advance for any help.

    You can deploy AP's configured as Bridge and you may need some directional antennae.
    Cisco Aironet Antennas and Accessories Reference Guide
    http://www.cisco.com/en/US/prod/collateral/wireless/ps7183/ps469/product_data_sheet09186a008008883b.html
    Cisco Aironet 2.4 GHz and 5 GHz Antennas and Accessories
    http://www.cisco.com/en/US/prod/collateral/wireless/ps7183/ps469/product_data_sheet09186a008022b11b.html
    Hope this helps.

  • How do you configure the RTC as an Extend/TCP client vs Compute Client?

    How do you choose between the Real Time Client acting as an Extend/TCP Client or a Compute Client?
    Thanks,
    Andrew

    Hi Andrew,
    I believe RT client as a Compute client means storage-disabled normal TCMP cluster node in a Grid Edition cluster, but I may be wrong.
    Best regards,
    Robert

  • How to extend WCM_PLACEHOLDER service?

    We are trying to extend WCM_PLACEHOLDER service. We tried this by extending the sitestudio.SSWCMServiceHandler. But this was throwing the follwoing errors in the logs.
    ================================================
    The request was not processed by the Service handler because of a protocol error.
    The request headers parsed from the request are:
    {HTTP_USER_AGENT=Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; MS-RTC LM 8; .NET CLR 1.1.4322; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729), HTTP_ACCEPT_ENCODING=gzip, deflate, REQUEST_METHOD=GET, IsSocketConnection=1, IdcAuthChallengeType=http, HTTP_ACCEPT_LANGUAGE=en-us, ThreadCount=1, SERVER_NAME=HD-PRATAPM.Virtusa.com, SERVER_SOFTWARE=Oracle-Application-Server-11g, HTTP_CGIPATHROOT=/ucm/idcplg, RemoteClientHostAddress=127.0.0.1, HTTP_HOST=hd-pratapm, GATEWAY_INTERFACE=CGI/1.1, REMOTE_ADDR=172.23.210.25, SERVER_PROTOCOL=HTTP/1.1, SERVER_PROTOCOL_TYPE=NONE, IDC_REQUEST_AGENT=webserver, REMOTE_HOST=172.23.210.25, QUERY_STRING=IdcService=MyDisplayService&dataFileDocName=OCS584677-000198&templateDocName=ARTICLEDETAILREGIONTEMPL&selectedLocale=en, HTTP_CONNECTION=Keep-Alive, RemoteClientPort=4444, SERVER_PORT=80, RemoteClientRemotePort=3570, IDC_REQUEST_CTIME=1280921471, SCRIPT_NAME=/ucm/idcplg, HTTP_ACCEPT=*/*, PATH_TRANSLATED=C:/OracleMiddlewareHome/Oracle_WC/ucm/weblayout/idcplg}
    System code execution error. java.lang.ClassCastException: com.virtusa.MyDisplayService
    =======================================================
    This is happening if we extend SSWCMServiceHandler class.
    But if we extend the simple intradoc.server.Service class service is working fine. But problem it doesn't have html rendering capabilities by default.
    I get following error if access the serivce via browser
    "Configuration error for request 'WCMPlaceHolderUtil'. No dynamic HTML page"
    I am able to execute the service from hcsp pages via executeService method and am able to see the output using binder variables. But our requirement is to deliver the output via URL requests while having the capability execute them through scripts. That's why we though if extending WCM_PLACEHOLDER service. But it is not working.
    Is there something extra configuration we need to do for extending this service.

    I tried a simple way. Hope this works. I called executeService("WCM_PLACEHOLDER"); from my service class (which extends Service class).
    This time I got a different error.
    =====================================
    Content Server Request Failed
    Unable to execute service QtelDisplayService and function qtelDisplayResponseHandler.
    (System Error: The command 'WCM_PLACEHOLDER' does not specify a subservice.)
    ==========================================
    What could possibly be missing here?
    Regards,
    Pratap

  • Extend-TCP client not failing over to another proxy after machine failure

    I have a configuration of three hosts. on A is the client, on B & C are a proxy and a cache instance. I've defined an AddressProvider that returns the address of B and then C. The client just repeatedly calls the cache (read-only). The client configuration is:
    <?xml version="1.0"?>
    <cache-config
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config"
    xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config
    coherence-cache-config.xsd">
    <caching-scheme-mapping>
    <cache-mapping>
    <cache-name>cache1</cache-name>
    <scheme-name>extend-near</scheme-name>
    </cache-mapping>
    </caching-scheme-mapping>
    <!-- Use ExtendTCP to connect to a proxy. -->
    <caching-schemes>
    <near-scheme>
    <scheme-name>extend-near</scheme-name>
    <front-scheme>
    <local-scheme>
    <high-units>1000</high-units>
    </local-scheme>
    </front-scheme>
    <back-scheme>
    <remote-cache-scheme>
    <scheme-ref>remote-cache1</scheme-ref>
    </remote-cache-scheme>
    </back-scheme>
    <invalidation-strategy>all</invalidation-strategy>
    </near-scheme>
    <remote-cache-scheme>
    <scheme-name>remote-cache1</scheme-name>
    <service-name>cache1ExtendedTcpProxyService</service-name>
    <initiator-config>
    <tcp-initiator>
    <remote-addresses>
    <address-provider>
    <class-name>com.foo.clients.Cache1AddressProvider</class-name>
    </address-provider>
    </remote-addresses>
    <connect-timeout>10s</connect-timeout>
    </tcp-initiator>
    <outgoing-message-handler>
    <request-timeout>5s</request-timeout>
    </outgoing-message-handler>
    </initiator-config>
    </remote-cache-scheme>
    </caching-schemes>
    If I shutdown the proxy that the client is connected to on host B, failover occurs quickly by calling the AddressProvider. But if I shut down the network for host B (or drop the TCP port of the proxy on B) to simulate a machine failure, failover does not occur. The client simply continues to try to contact B and dutifully times out in 5 seconds. It never asks the AddressProvider for another address.
    How do I get failover to kick in?

    Hello,
    If you are testing Coherence*Extend failover in the face of a network, machine, or NIC failure, you should enable Connection heartbeats on both the <tcp-initiator/> and <tcp-acceptor/>. For example:
    Client cache config:
    <remote-cache-scheme>
      <scheme-name>extend-direct</scheme-name>
      <service-name>ExtendTcpCacheService</service-name>
      <initiator-config>
        <tcp-initiator>
          <remote-addresses>
            <socket-address>
              <address system-property="tangosol.coherence.extend.address">localhost</address>
              <port system-property="tangosol.coherence.extend.port">9099</port>
            </socket-address>
          </remote-addresses>
          <connect-timeout>2s</connect-timeout>
        </tcp-initiator>
        <outgoing-message-handler>
          <heartbeat-interval>10s</heartbeat-interval>
          <heartbeat-timeout>5s</heartbeat-timeout>
          <request-timeout>15s</request-timeout>
        </outgoing-message-handler>
      </initiator-config>
    </remote-cache-scheme>Proxy cache config:
    <proxy-scheme>
      <scheme-name>example-proxy</scheme-name>
      <service-name>ExtendTcpProxyService</service-name>
      <thread-count system-property="tangosol.coherence.extend.threads">2</thread-count>
      <acceptor-config>
        <tcp-acceptor>
          <local-address>
            <address system-property="tangosol.coherence.extend.address">localhost</address>
            <port system-property="tangosol.coherence.extend.port">9099</port>
          </local-address>
        </tcp-acceptor>
        <outgoing-message-handler>
          <heartbeat-interval>10s</heartbeat-interval>
          <heartbeat-timeout>5s</heartbeat-timeout>
          <request-timeout>15s</request-timeout>
        </outgoing-message-handler>
      </acceptor-config>
      <autostart system-property="tangosol.coherence.extend.enabled">true</autostart>
    </proxy-scheme>This is because it may take the TCP/IP stack a considerable amount of time to detect that it's peer is unavailable after a network, machine, or NIC failure (O/S dependent).
    Jason

  • Accessing Coherence Extend* Proxy Deployoed on Weblogic Coherence Cluster from Java Client

    Hi,
    I am trying to access Extend Proxy through Thick Java Client
    Followed steps as per below links and deployed a GAR on 3 Server ( 2 Storage Enabled Coherence Cluster and 1 Coherence Storage Disabled Extend Proxy Enabled). I could see ExtendProxyService using JMX and can see Port running on the System.
    Ref :
    Setting Up Coherence*Extend - 12c (12.1.2)
    http://docs.oracle.com/middleware/1212/coherence/COHAG/deploy_options.htm#CHDJBJDI
    Issue :
    When I tried to Execute Java Client to Connect to Proxy Server it Connects to Port and then Disconnects with ConnectionException as below.
    Observer below Lines in Box is show he Connected Socket with Port 9099 which is Extend Proxy Port
    Error Message
    2013-11-08 14:55:55.114/1.202 Oracle Coherence GE 12.1.2.0.0 <D5> (thread=TcpClientRemoteService:TcpInitiator, member=n/a): Started: TcpInitiator{Name=TcpClientRemoteService:TcpInitiator, State=(SERVICE_STARTED), ThreadCount=0, Codec=Codec(Format=POF), Serializer=com.tangosol.io.DefaultSerializer, PingInterval=0, PingTimeout=30000, RequestTimeout=30000, ConnectTimeout=10000, SocketProvider=[email protected], RemoteAddresses=WrapperSocketAddressProvider{Providers=[[DTC37446E9C6CBD/127.0.0.0:9099]]}, SocketOptions{LingerTimeout=0, KeepAliveEnabled=true, TcpDelayEnabled=false}}
    2013-11-08 14:55:55.146/1.234 Oracle Coherence GE 12.1.2.0.0 <D5> (thread=main, member=n/a): Connecting Socket to 127.0.0.0:9099
    2013-11-08 14:55:55.146/1.234 Oracle Coherence GE 12.1.2.0.0 <Info> (thread=main, member=n/a): Connected Socket to 127.0.0.0:9099
    2013-11-08 14:55:55.161/1.249 Oracle Coherence GE 12.1.2.0.0 <Info> (thread=main, member=n/a): Error establishing a connection with 127.0.0.0:9099: com.tangosol.net.messaging.ConnectionException: TcpConnection(Id=null, Open=true, LocalAddress=0.0.0.0:54384, RemoteAddress=127.0.0.0:9099)
    2013-11-08 14:55:55.161/1.249 Oracle Coherence GE 12.1.2.0.0 <Error> (thread=main, member=n/a): Error while starting service "TcpClientRemoteService": com.tangosol.net.messaging.ConnectionException: could not establish a connection to one of the following addresses: [127.0.0.0:9099]; make sure the "remote-addresses" configuration element contains an address and port of a running TcpAcceptor
        at com.tangosol.coherence.component.util.daemon.queueProcessor.service.peer.initiator.TcpInitiator.openConnection(TcpInitiator.CDB:121)
        at com.tangosol.coherence.component.util.daemon.queueProcessor.service.peer.Initiator.ensureConnection(Initiator.CDB:11)
        at com.tangosol.coherence.component.net.extend.remoteService.RemoteCacheService.openChannel(RemoteCacheService.CDB:7)
        at com.tangosol.coherence.component.net.extend.RemoteService.doStart(RemoteService.CDB:11)
        at com.tangosol.coherence.component.net.extend.RemoteService.start(RemoteService.CDB:5)
        at com.tangosol.coherence.component.util.SafeService.startService(SafeService.CDB:53)
        at com.tangosol.coherence.component.util.safeService.SafeCacheService.startService(SafeCacheService.CDB:5)
        at com.tangosol.coherence.component.util.SafeService.ensureRunningService(SafeService.CDB:27)
        at com.tangosol.coherence.component.util.SafeService.start(SafeService.CDB:14)
        at com.tangosol.net.ExtensibleConfigurableCacheFactory.startService(ExtensibleConfigurableCacheFactory.java:681)
        at com.tangosol.net.ExtensibleConfigurableCacheFactory.ensureService(ExtensibleConfigurableCacheFactory.java:599)
        at com.tangosol.coherence.config.scheme.AbstractCachingScheme.realizeCache(AbstractCachingScheme.java:50)
        at com.tangosol.coherence.config.scheme.AbstractBundlingScheme.realizeCache(AbstractBundlingScheme.java:31)
        at com.tangosol.net.ExtensibleConfigurableCacheFactory.ensureCache(ExtensibleConfigurableCacheFactory.java:254)
        at com.tangosol.net.CacheFactory.getCache(CacheFactory.java:205)
        at com.tangosol.net.CacheFactory.getCache(CacheFactory.java:182)

    If this proxy design (not starting up due to a invalid entry in "authroized-hosts") is on-purpose from Coherence Engineers - then it should be re-visited.
    I think the PROXY Server should just log a message stating about the invalid DNS entry for the Authorized-host and continue with the startup...Failing to start completely doesn;t make sense since one cannot rely completely on DNS to
    say everything should be correct before a server start.
    Ofcourse you can overcome by writing your own Custom Filter - but the issue pop's out as with any custom filter(s) is maintaining them along the road (with all minor/major coherence upgrades).
    Also - this "Authorized-Hosts" concept should be carefully analyzed particularly for the following issues...
    (1) if the client IP is changed in the DNS server - will the proxy-server allow the new Client connection without any issues? when will the PROXY server flush its CLIENT DNS entries or what is the TTL time-limit for a CLIENT cached through Authorized-hosts by the PROXY-SERVER?
    (2) Suppose, we have a CLIENT in the "Authroized-Hosts" making a valid connection to the PROXY and putting some cache into the SERVER CACHE through the PROXY....now if the IP-address (DNS being the same) of the CLIENT is changed - can the CLIENT can GET the CACHE it just PUT into the SERVER without any ERRORS?
    (3) How often we need to re-start PROXIES? Do we need to re-start them often for the DNS issues (if any) mentioned above?
    Looks like the Limited documentation & examples for Coherence*Extend - particularly for .NET & C++ clients & *Extend Proxies is a point of concern.
    vk

  • Coherence Extends and Local Cache

    I am triying to use coherence extends to do some work with cache,
    with a local cache is that possible i keep getting null pointer exception,
    like if the data is not being stored in the cache.
         <cache-mapping>
              <cache-name>local-pds2-*</cache-name>
              <scheme-name>local-cache</scheme-name>
         </cache-mapping>
         <local-scheme>
              <scheme-name>local-cache</scheme-name>
                   <eviction-policy>LRU</eviction-policy>
                   <high-units>32000</high-units>
                   <low-units>10</low-units>
                   <unit-calculator>FIXED</unit-calculator>
                   <expiry-delay>10ms</expiry-delay>
                   <flush-delay>1000ms</flush-delay>
         </local-scheme>
    is there something wrong in my configuration?

    this is the config y use for the client
    <?xml version="1.0"?>
    <!DOCTYPE cache-config SYSTEM "cache-config.dtd">
    <cache-config>
    <caching-scheme-mapping>
         <cache-mapping>
              <cache-name>local-pds2-*</cache-name>
              <scheme-name>local-cache</scheme-name>
         </cache-mapping>
    <cache-mapping>
    <cache-name>dist-pds2-*</cache-name>
    <scheme-name>extend-dist</scheme-name>
    </cache-mapping>
    </caching-scheme-mapping>
    <caching-schemes>
         <local-scheme>
              <scheme-name>local-cache</scheme-name>
                   <eviction-policy>LRU</eviction-policy>
                   <high-units>32000</high-units>
                   <low-units>10</low-units>
                   <unit-calculator>FIXED</unit-calculator>
                   <expiry-delay>10ms</expiry-delay>
                   <flush-delay>1000ms</flush-delay>
         </local-scheme>
    <remote-cache-scheme>
    <scheme-name>extend-dist</scheme-name>
    <service-name>ExtendTcpCacheService</service-name>
    <initiator-config>
    <tcp-initiator>
    <remote-addresses>
    <socket-address>
    <address>172.16.2.229</address>
    <address>localhost</address>
    <port>5354</port>
    </socket-address>
    </remote-addresses>
    <connect-timeout>10s</connect-timeout>
    </tcp-initiator>
    <outgoing-message-handler>
    <request-timeout>5s</request-timeout>
    </outgoing-message-handler>
    </initiator-config>
    </remote-cache-scheme>
    </caching-schemes>
    </cache-config>
    and this for the server
    <?xml version="1.0"?>
    <!DOCTYPE cache-config SYSTEM "cache-config.dtd">
    <cache-config>
         <defaults>
              <serializer system-property="tangosol.coherence.serializer"/>
              <socket-provider system-property="tangosol.coherence.socketprovider"/>
         </defaults>
         <caching-scheme-mapping>
              <cache-mapping>
                   <cache-name>dist-pds2-*</cache-name>
                   <scheme-name>dist-default</scheme-name>
              </cache-mapping>
         </caching-scheme-mapping>
         <cache-mapping>
              <cache-name>dist-*</cache-name>
              <scheme-name>distributed</scheme-name>
              <init-params>
                   <init-param>
                        <param-name>back-size-limit</param-name>
                        <param-value>8MB</param-value>
                   </init-param>
              </init-params>
         </cache-mapping>
         <distributed-scheme>
              <scheme-name>distributed</scheme-name>
              <service-name>DistributedCache</service-name>
              <backing-map-scheme>
                   <local-scheme>
                        <scheme-ref>binary-backing-map</scheme-ref>
                   </local-scheme>
              </backing-map-scheme>
              <autostart>true</autostart>
         </distributed-scheme>
         <local-scheme>
              <scheme-name>binary-backing-map</scheme-name>
              <eviction-policy>HYBRID</eviction-policy>
              <high-units>{back-size-limit 0}</high-units>
              <unit-calculator>BINARY</unit-calculator>
              <expiry-delay>{back-expiry 1h}</expiry-delay>
              <flush-delay>1m</flush-delay>
              <cachestore-scheme></cachestore-scheme>
         </local-scheme>
         <caching-schemes>
              <distributed-scheme>
                   <scheme-name>dist-default</scheme-name>
                   <backing-map-scheme>
                        <local-scheme/>
                   </backing-map-scheme>
                   <autostart>true</autostart>
              </distributed-scheme>
              <proxy-scheme>
                   <service-name>ExtendTcpProxyService</service-name>
                   <acceptor-config>
                        <tcp-acceptor>
                             <local-address>
                                  <address >localhost</address>
                                  <port >5354</port>
                             </local-address>
                        </tcp-acceptor>
                   </acceptor-config>
                   <proxy-config>
                        <cache-service-proxy>
                             <enabled>true</enabled>
                        </cache-service-proxy>
                        <invocation-service-proxy>
                             <enabled>true</enabled>
                        </invocation-service-proxy>
                   </proxy-config>
                   <autostart >true</autostart>
              </proxy-scheme>
         </caching-schemes>
    </cache-config>

  • Oracle 11g: How to ensure the same transaction across several BPEL calls?

    How to ensure transaction semantics across invocations of several BPEL services with a Database operations (Insert, update)? We are using transaction REQUIRED property in all of our BPELs. We are using webserive and JCA to access and modify the same row. Our code uses a combination of JCA, Spring bean, enity services, EJBs in these BPELs. The code can be more efficient, but, at this point, we have no option but to fix the transaction issue in this code. So, our question is how to ensure the same transaction context is used in all these BPELs to inser/update the same row? We have tried to set the GetUnitOfWork in the JCA Adapter but it did not provide any solution. Apaert from setting transaction in BPEL to REQUIRED and the JCA Adapter to use Unit of work, we are out of ideas. Any help is much apprecited. We are using Oracle SOA Suite 11g 11.1.1.5 version. --chary

    Hi,
    I can help you if you can describe the processes.
    There can be some difficulties when you try to use the same transaction especially when you use many DB transactions & BPEL processes.
    Using unit of work only ,might not be enough.
    Thanks
    Arik

  • Can C++ Client use Coherence*Extend on AIX?

    Hi Experts,
    My application is a C++ client, I want to connect to Coherence Cluster using Coherence*Extend on AIX,
    I checked coherence document, I found that Coherence*Extend C++ support pure C++. But I couldn't
    find the download URL of Coherence*Extend C++ for AIX, So If C++ Client can use Coherence*Extend
    on AIX?If yes, how can I get the lib for Coherence*Extend C++ of AIX? Thanks.

    Supported environments are listed here:
    http://docs.oracle.com/cd/E24290_01/coh.371/e22839/gs_install.htm#BABDCDFG
    That does not currently include AIX; the platforms supported largely reflect the platforms that customers requested over time, so speak with your Oracle account representative.
    In the meantime, I would suggest looking at the RESTful support in Coherence that will allow you to access the caches from AIX (over REST/HTTP) without an Extend client.
    Peace,
    Cameron Purdy | Oracle

Maybe you are looking for

  • HP 23xi Monitor gets fuzzy despite driver and auto adjustment

    I have a HP pavilion dv2000 windows Vista with a HP 23xi monitor hookep up throug VGA. I installed the driver from HP's website and the text was no longer blured nor the images stretched. However, every single time I unplug my laptop and replug it ba

  • Tolerance group setting

    Hello, For the following setting what should be set into tolerance group: The difference is too large for clearing (Round off difference upto INR 2 should be set off while clearing Vendor line items) regards

  • FCE to iMov to iDVD = generation loss

    The only way I have found to burn projects on the internal iMac DVD drive is to a) export using QT b) import into iMovie c) burn from iDVD It's so frustrating bec the newly burned DVD looks like it was all shot on an ancient VHS camera and is fuzzier

  • Error on iTunes 8.2.1. in iStore  (-42404)

    I recently lost my Spotlight and other apps, went to Discussions, tried various suggested things (repairing permissions, etc) and couldn't restore them, so had to resort to re-installing my OS X CD's and then upgrading to 10.4.11, and doing a lot of

  • Linksys srw2048 unable to update firmware via xmodem (using hyperterm)

    I have three srw2048 series switches at my new job. One updated fine via the web interface the other two (after I found a windows machine to use the web interface) looked as though they were uploading the new file but after a reboot I was still on th