Coherence Extend: is remote address a JVM/System property?
Hello,
I want to pass remote address and port as a JVM argument (not really being part of the cache configuration of the extend clients), is it possible?
<remote-addresses>
<socket-address>
<address>192.168.0.2</address>
<port>9099</port>
</socket-address>
<socket-address>
<address>192.168.0.3</address>
<port>9099</port>
</socket-address>
</remote-addresses>
is it possible to Dynamically inject the Address into the cache configuration file?
<socket-address>
*<address>{IPAddress}</address>*
<port>9099</port>
</socket-address>
</remote-addresses>
Thanks
Prab
Hi Prab,
You do it like this:
<socket-address>
<address system-property="my.extend.address"></address>
<port system-property="my.extend.port"></port>
</socket-address>You then specify the properties when you start up
-Dmy.extend.address=192.168.0.2 -Dmy.extend.port=9099JK
Similar Messages
-
JVM System Properties - how to set?
Is there a way to set JVM system property values for
an Oracle instance from "outside" the jvm? I need the
equivalent of specifying -Dproperty=value on the JVM
launch command, but for the JVM running inside Oracle 9.
Is this possible?382891,
As far as I know, this cannot be done. Perhaps the "java.lang.System.setProperty()" method will suffice?
Good Luck,
Avi. -
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,
-AllenHi 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 -
Coherence Extend remote address port in TCP Connection
Hi,
From the log below, I see remote address port is picked some random port(48552). (currently i disabled the firewall), If i enable the firewall it could be an issue, is there any way i can specify the remote ports that tcp connection use?
2011-02-24 13:18:18.076/1280.207 Oracle Coherence GE 3.6.0.1 <D6> (thread=Proxy:ExtendTcpProxyService:TcpAcceptor, member=13): Opened: TcpConnection(Id=0x0000012E56A3CA1B0A1F96B688F7EEBCEDA2AA9397203393CF480379B3963D86, Open=true, LocalAddress=10.31.150.182:9099, RemoteAddress=10.31.150.182:48552)
One more question,
I have two proxy servers, is it possible to configure the client to make two connection (redundant) one for first proxy and another for second proxy. is it make sense?
Thanks
Prab
Edited by: 833796 on Feb 24, 2011 2:35 AMHi Prab
The random port is what normally is called an ephemeral port for the client and is usually not a problem for firewalls since this is expected behavior. If you want to control the client port you can do this by adding the <local-address> to the tcp-initiator element.
As for the second question, it doesn't quite work to do as you suggest. The proxy contains state for the client, as this is not replicable between the proxies one cannot continue where the other one left off.
Thanks
/Charlie -
Hi
I have installed coheI have installed coherence server "fmw_12.1.3.0.0_coherence_Disk1_1of1.zip" along with Examples on windows machine and C++ client coherence-cpp-12.1.3.0.0b51709-windows-x86-vs2012.zip on the same machine.
I have built the "contacts" C++ Example successfully and while I execute this "contacts" using run I am facing TcpAcceptor error.
On my coherence server the TcpAcceptor is listening on port 8088, so I have modified the extend-cache-config.xml file with values "ip address of my windows machine" and port as "8088".
All the time I am getting below error,
coherence::net::messaging::ConnectionException: could not establish a connection to one of the following addresses: {10.242.152.242/10.242.152.242:8088}; make sure the "remote-addresses" configuration element contains an address and port of a running TcpAcceptor
at class coherence::lang::TypedHandle<class coherence::component::net::extend::PofConnection> __thiscall coherence::component::util::TcpInitiator::openConne
ction(void)(TcpInitiator.cpp:307)
at coherence::component::util::TcpInitiator::openConnection
at coherence::component::util::Initiator::ensureConnection
at coherence::component::net::extend::RemoteCacheService::openChannel
at coherence::component::net::extend::RemoteService::doStart
at coherence::component::net::extend::RemoteService::start
at coherence::component::util::SafeService::startService
at coherence::component::util::SafeService::restartService
at coherence::component::util::SafeService::ensureRunningServiceInternal
at coherence::component::util::SafeService::start
at coherence::net::DefaultConfigurableCacheFactory::configureService
at coherence::net::DefaultConfigurableCacheFactory::ensureService
at coherence::net::DefaultConfigurableCacheFactory::ensureRemoteCache
at coherence::net::DefaultConfigurableCacheFactory::configureCache
at coherence::net::DefaultConfigurableCacheFactory::ensureCache
at coherence::net::CacheFactory::getCache
at unsigned __int64 coherence::lang::class_spec<class coherence::lang::Managed<class ContactId>,class coherence::lang::extends<class coherence::lang::Object,class coherence::lang::Void<class coherence::lang::Object> >,class coherence::lang::implements<void,void,void,void,void,void,void,void,void,void,void,void,void,void,void,void> >::sizeOf(bool)
at _onexit
at class coherence::util::Hashtable * coherence::lang::factory<class coherence::util::Hashtable>::create(void)
at class coherence::util::Hashtable * coherence::lang::factory<class coherence::util::Hashtable>::create(void)
at BaseThreadInitThunk
at RtlInitializeExceptionChain
at RtlInitializeExceptionChain
on thread "main"
Caused by: coherence::net::messaging::ConnectionException: coherence::component::util::TcpInitiator::TcpConnection@029EAD78{Id=NULL, Open=1, LocalAddress=NULL,
RemoteAddress=10.242.152.242/10.242.152.242:8088}: socket disconnect
at class coherence::lang::TypedHandle<class coherence::net::messaging::Response> __thiscall coherence::component::net::extend::AbstractPofRequest::Status::g
etResponse(void)(AbstractPofRequest.cpp:203)
at coherence::component::net::extend::AbstractPofRequest::Status::getResponse
at coherence::component::net::extend::AbstractPofRequest::Status::waitForResponse
at coherence::component::util::Initiator::openConnection
at coherence::component::net::extend::PofConnection::open
at coherence::component::util::TcpInitiator::openConnection
at coherence::component::util::Initiator::ensureConnection
at coherence::component::net::extend::RemoteCacheService::openChannel
at coherence::component::net::extend::RemoteService::doStart
at coherence::component::net::extend::RemoteService::start
at coherence::component::util::SafeService::startService
at coherence::component::util::SafeService::restartService
at coherence::component::util::SafeService::ensureRunningServiceInternal
at coherence::component::util::SafeService::start
at coherence::net::DefaultConfigurableCacheFactory::configureService
at coherence::net::DefaultConfigurableCacheFactory::ensureService
at coherence::net::DefaultConfigurableCacheFactory::ensureRemoteCache
at coherence::net::DefaultConfigurableCacheFactory::configureCache
at coherence::net::DefaultConfigurableCacheFactory::ensureCache
at coherence::net::CacheFactory::getCache
at unsigned __int64 coherence::lang::class_spec<class coherence::lang::Managed<class ContactId>,class coherence::lang::extends<class coherence::lang::Object
,class coherence::lang::Void<class coherence::lang::Object> >,class coherence::lang::implements<void,void,void,void,void,void,void,void,void,void,void,void,void
,void,void,void> >::sizeOf(bool)
at _onexit
at class coherence::util::Hashtable * coherence::lang::factory<class coherence::util::Hashtable>::create(void)
at class coherence::util::Hashtable * coherence::lang::factory<class coherence::util::Hashtable>::create(void)
at BaseThreadInitThunk
at RtlInitializeExceptionChain
at RtlInitializeExceptionChain
on thread "main"
Caused by: coherence::io::IOException: socket disconnect
at unsigned int __thiscall coherence::net::Socket::readInternal(unsigned char *,unsigned int)(Socket.cpp:333)
at coherence::net::Socket::readInternal
at coherence::net::Socket::SocketInput::read
at coherence::io::BufferedInputStream::fillBuffer
at coherence::io::BufferedInputStream::read
at coherence::component::util::TcpInitiator::readMessageLength
at coherence::component::util::TcpInitiator::TcpConnection::TcpReader::onNotify
at coherence::component::util::Daemon::run
at coherence::lang::Thread::run
on thread "ExtendTcpCacheService:coherence::component::util::TcpInitiator:coherence::component::util::TcpInitiator::TcpConnection::TcpReader"We are facing same issue. Could you please provide us any working .Net sample code for the version 12.1.2.0.
<ssl>
<protocol>Tls</protocol>
<local-certificates>
<certificate>
<url>c:\Cert\</url>
<password>password</password>
<flags>DefaultKeySet</flags>
</certificate>
</local-certificates>
</ssl>
thanks
Bala -
Coherence Extend Address-provider for dynamic load balancing
Hi,
I want to have load balancing across my proxies. so, trying to use <address-provider> feature.
Here is my setup,
I have two proxies and many clients.I am configuring both proxy and the client to use load sharing scheme.
There are implemented classes for the interface AddressProvider. So, i am going to use that.
Here is proxy server settings,
<proxy-scheme>
<service-name>ExtendTcpProxyService</service-name>
<thread-count>10</thread-count>
<acceptor-config>
<tcp-acceptor>
<address-provider>
<class-name>com.tangosol.net.RefreshableAddressProvider</class-name>
</address-provider>
</tcp-acceptor>
</acceptor-config>
<autostart>true</autostart>
</proxy-scheme>
I know there is some silly mistake with that,
I am getting error message in the following log,
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.emc.srm.common.daemon.SrmDaemon.start(SrmDaemon.java:59)
... 5 more
Caused by: (Wrapped: Missing or inaccessible constructor "com.tangosol.net.RefreshableAddressProvider()"
<address-provider>
<class-name>com.tangosol.net.RefreshableAddressProvider</class-name>
</address-provider>) java.lang.InstantiationException
at com.tangosol.util.Base.ensureRuntimeException(Base.java:293)
at com.tangosol.run.xml.XmlHelper.createInstance(XmlHelper.java:2542)
at com.tangosol.run.xml.XmlHelper.createInstance(XmlHelper.java:2426)
at com.tangosol.net.ConfigurableAddressProvider.createAddressProvider(ConfigurableAddressProvider.java:277)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.peer.acceptor.TcpAcceptor.configure(TcpAcceptor.CDB:78)
at com.tangosol.coherence.component.util.daemon.queueProcessor.service.grid.ProxyService.configure(ProxyService.CDB:67)
at com.tangosol.coherence.component.util.SafeService.startService(SafeService.CDB:6)
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.ensureServiceInternal(DefaultConfigurableCacheFactory.java:1057)
at com.tangosol.net.DefaultConfigurableCacheFactory.ensureService(DefaultConfigurableCacheFactory.java:892)
at com.tangosol.net.DefaultCacheServer.startServices(DefaultCacheServer.java:81)
at com.tangosol.net.DefaultCacheServer.intialStartServices(DefaultCacheServer.java:250)
at com.tangosol.net.DefaultCacheServer.startAndMonitor(DefaultCacheServer.java:55)
at com.tangosol.net.DefaultCacheServer.main(DefaultCacheServer.java:197)
... 10 more
Caused by: java.lang.InstantiationException
at sun.reflect.InstantiationExceptionConstructorAccessorImpl.newInstance(InstantiationExceptionConstructorAccessorImpl.java:30)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at com.tangosol.util.ClassHelper.newInstance(ClassHelper.java:587)
at com.tangosol.run.xml.XmlHelper.createInstance(XmlHelper.java:2501)
... 23 more
Cannot start daemon
First question:
1) without address provider section in the proxy server configuration xml, will it use any default address provider implementation?
2) what's wrong with the proxy server settings xml which causes above error?
Thanks
PrabHi LuK,
Sounds like there is no load balancing is happening in my environment.
I didn't use address provider tag since it's mentioned in AddressProvider Interface API that by default it uses ConfigurableAddressProvider implementation.
Here is a xml snippet in remote client cache configuration xml,
<tcp-initiator>
*<remote-addresses>*
*<socket-address>*
*<address>PROXY-A</address>*
*<port>9099</port>*
*</socket-address>*
*<socket-address>*
*<address>PROXY-B</address>*
*<port>9099</port>*
*</socket-address>*
*</remote-addresses>*
<connect-timeout>10s</connect-timeout>
</tcp-initiator>
what i mean by load balancing is,
I will be having lot of web service queries which runs very fast. I would like to see both the proxies serves the web requests.
I am observing, One connection has been made to one proxy when it's starts up and keep hold on to it (no matter whether other proxy is free or not).
is it a bug? or am i doing some mistake?
Thanks
Prab -
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> -
Coherence Extend Config: Client create a new Cluster
Hi,
I have configured one storage-enabled coherence node and one proxy server on port 9099 as shown in the wiki. Coherence client is configured with the right -Dtangosol.coherence.cacheconfig which points to the xml file with
+ +<remote-cache-scheme>++
++ <scheme-name>extend-dist</scheme-name>++
++ <service-name>ExtendTcpCacheService</service-name>++
++ <initiator-config>++
++ <tcp-initiator>++
++ <remote-addresses>++
++ <socket-address>++
++ <address>Proxy_IP</address>++
++ <port>9099</port>++
++ </socket-address>++
++ </remote-addresses>++
++ <connect-timeout>10s</connect-timeout>++
++ </tcp-initiator>++
++ <outgoing-message-handler>++
++ <heartbeat-interval>5s</heartbeat-interval>++
++ <heartbeat-timeout>4s</heartbeat-timeout>++
++ <request-timeout>50s</request-timeout>++
++ </outgoing-message-handler>++
++ </initiator-config>++
++ </remote-cache-scheme>++
My Client logs shows that it has created a new cluster and then it loaded the Dtangosol.coherence.cacheconfig xml file. Is there a way to prevent my client starting a new cluster? Is configuration incorrect? Any help will be greatly appreciated :)
Client Log:
======
2011-02-10 04:39:37.599/0.599 Oracle Coherence 3.6.0.1 <Info> (thread=main, member=n/a): Loaded operational configuration from "jar:file:/usr/share/java/coherence-3.6.0.1.jar!/tangosol-coherence.xml"
2011-02-10 04:39:37.606/0.606 Oracle Coherence 3.6.0.1 <Info> (thread=main, member=n/a): Loaded operational overrides from "jar:file:/usr/share/java/coherence-3.6.0.1.jar!/tangosol-coherence-override-dev.xml"
2011-02-10 04:39:37.606/0.606 Oracle Coherence 3.6.0.1 <D5> (thread=main, member=n/a): Optional configuration override "/tangosol-coherence-override.xml" is not specified
2011-02-10 04:39:37.615/0.615 Oracle Coherence 3.6.0.1 <D5> (thread=main, member=n/a): Optional configuration override "/custom-mbeans.xml" is not specified
Oracle Coherence Version 3.6.0.1 Build 17846
Grid Edition: Development mode
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
2011-02-10 04:39:38.112/1.112 Oracle Coherence GE 3.6.0.1 <D4> (thread=main, member=n/a): TCMP bound to /172.23.73.236:8088 using SystemSocketProvider
2011-02-10 04:39:38.432/1.432 Oracle Coherence GE 3.6.0.1 <Info> (thread=Cluster, member=n/a): This Member(Id=3, Timestamp=2011-02-10 04:39:38.236, Address=172.23.73.236:8088, MachineId=62188, Location=site:lss.emc.com,machine:lglor236,process:5631, Role=ApacheCommonsDaemonDaemonLoader, Edition=Grid Edition, Mode=Development, CpuCount=4, SocketCount=4) joined cluster "*cluster:0xC4DB" with senior Member(Id=2, Timestamp=2011-02-10* 04:33:09.003, Address=172.23.73.236:8090, MachineId=62188, Location=site:lss.emc.com,machine:lglor236,process:4193, Role=ApacheCommonsDaemonDaemonLoader, Edition=Grid Edition, Mode=Development, CpuCount=4, SocketCount=4)
2011-02-10 04:39:38.439/1.439 Oracle Coherence GE 3.6.0.1 <D5> (thread=Cluster, member=n/a): Member 2 joined Service Cluster with senior member 2
2011-02-10 04:39:38.440/1.440 Oracle Coherence GE 3.6.0.1 <D5> (thread=Cluster, member=n/a): Member 2 joined Service Management with senior member 2
2011-02-10 04:39:38.440/1.440 Oracle Coherence GE 3.6.0.1 <D5> (thread=Cluster, member=n/a): Member 2 joined Service DistributedCache with senior member 2
2011-02-10 04:39:38.442/1.442 Oracle Coherence GE 3.6.0.1 <Info> (thread=main, member=n/a): Started cluster Name=cluster:0xC4DB
Group{Address=224.3.6.0, Port=36000, TTL=4}
MasterMemberSet
ThisMember=Member(Id=3, Timestamp=2011-02-10 04:39:38.236, Address=172.23.73.236:8088, MachineId=62188, Location=site:lss.emc.com,machine:lglor236,process:5631, Role=ApacheCommonsDaemonDaemonLoader)
OldestMember=Member(Id=2, Timestamp=2011-02-10 04:33:09.003, Address=172.23.73.236:8090, MachineId=62188, Location=site:lss.emc.com,machine:lglor236,process:4193, Role=ApacheCommonsDaemonDaemonLoader)
ActualMemberSet=MemberSet(Size=2, BitSetCount=2
Member(Id=2, Timestamp=2011-02-10 04:33:09.003, Address=172.23.73.236:8090, MachineId=62188, Location=site:lss.emc.com,machine:lglor236,process:4193, Role=ApacheCommonsDaemonDaemonLoader)
Member(Id=3, Timestamp=2011-02-10 04:39:38.236, Address=172.23.73.236:8088, MachineId=62188, Location=site:lss.emc.com,machine:lglor236,process:5631, Role=ApacheCommonsDaemonDaemonLoader)
RecycleMillis=1200000
RecycleSet=MemberSet(Size=0, BitSetCount=0
TcpRing{Connections=[2]}
IpMonitor{AddressListSize=0}
2011-02-10 04:39:38.477/1.477 Oracle Coherence GE 3.6.0.1 <D5> (thread=Invocation:Management, member=3): Service Management joined the cluster with senior service member 2
Feb 10, 2011 4:39:38 AM org.springframework.context.support.AbstractApplicationContext prepareRefresh
INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@257b40fe: display name [org.springframework.context.support.ClassPathXmlApplicationContext@257b40fe]; startup date [Thu Feb 10 04:39:38 EST 2011]; root of context hierarchy
Feb 10, 2011 4:39:38 AM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
INFO: Loading XML bean definitions from class path resource [configurationRestApplicationContext.xml]
Feb 10, 2011 4:39:38 AM org.springframework.context.support.AbstractApplicationContext obtainFreshBeanFactory
INFO: Bean factory for application context [org.springframework.context.support.ClassPathXmlApplicationContext@257b40fe]: org.springframework.beans.factory.support.DefaultListableBeanFactory@4bd27069
Feb 10, 2011 4:39:38 AM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@4bd27069: defining beans [component,server,router,srmconfigurationsresource,srmconfigurationtyperesource,srmconfigurationresource,coherenceStatusResource,configurationMapRepository,configurationOVFFileLoader,defaultConfigurationLoader,feedpagingLinkHandler,adminConfigTransformer,configurationMapQueryHandler,fileUploadResource,postProcessorImpl]; root of factory hierarchy
[Fatal Error] :-1:-1: Premature end of file.
[Fatal Error] :-1:-1: Premature end of file.
*2011-02-10 04:39:39.332/2.332 Oracle Coherence GE 3.6.0.1 <Info> (thread=main, member=3): Loaded cache configuration from "file:/etc/sysconfig/proxy_node.xml"*
2011-02-10 04:39:39.504/2.504 Oracle Coherence GE 3.6.0.1 <D5> (thread=DistributedCache, member=3): Service DistributedCache joined the cluster with senior service member 2
Also I have verified that my storage enabled node and proxy node have formed a cluster...
The client has been started with -Dtangosol.coherence.cacheconfig=/etc/sysconfig/proxy_node.xml
Thanks & Regards,
SandeepHi,
Used -Dtangosol.coherence.tcmp.enabled=false to disable TCMP mode... ( Phew... :) )
In my client code we have the following statements...
*==> Service service = CacheFactory.getService("DistributedCache");*
* Set<Member> storeEnabledSet = ((DistributedCacheService) service)*
* .getStorageEnabledMembers();*
*==> CacheFactory.ensureCluster();*
Does this needs to be changed for an Extend Client configuration?
With my current setup I am getting exceptions ...
2011-02-13 22:36:59.075/111.151 Oracle Coherence GE 3.6.0.1 <Error> (thread=main, member=n/a): Error while starting cluster: java.lang.UnsupportedOperationException: TCMP clustering has been disabled*; this configuration may only access clustered services via Extend proxies.*
at com.tangosol.coherence.component.net.Cluster.onStart(Cluster.CDB:42)
at com.tangosol.coherence.component.net.Cluster.start(Cluster.CDB:11)
at com.tangosol.coherence.component.util.SafeCluster.startCluster(SafeCluster.CDB:3)
at com.tangosol.coherence.component.util.SafeCluster.restartCluster(SafeCluster.CDB:7)
at com.tangosol.coherence.component.util.SafeCluster.ensureRunningCluster(SafeCluster.CDB:26)
at com.tangosol.coherence.component.util.SafeCluster.start(SafeCluster.CDB:2)
at com.tangosol.net.CacheFactory.ensureCluster(CacheFactory.java:998)
at com.emc.srm.admin.config.rest.RestApplicationLauncher.waitForCacheServer(RestApplicationLauncher.java:155)
at com.emc.srm.admin.config.rest.RestApplicationLauncher.main(RestApplicationLauncher.java:108)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.emc.srm.common.daemon.SrmDaemon.start(SrmDaemon.java:59)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.commons.daemon.support.DaemonLoader.start(DaemonLoader.java:219)
Any ideas on how to fix this?
Regards,
Sandeep
===========================
Client configuration:
<cache-mapping>
<cache-name>ConfigurationMapRepository</cache-name>
<scheme-name>extend-dist</scheme-name>
</cache-mapping>
<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>extend-dist</scheme-ref>
</remote-cache-scheme>
</back-scheme>
<invalidation-strategy>all</invalidation-strategy>
</near-scheme>
<!-- Event Repository cache scheme definition START -->
<remote-cache-scheme>
<scheme-name>extend-dist</scheme-name>
<service-name>DistributedCache</service-name>
<initiator-config>
<tcp-initiator>
<remote-addresses>
<socket-address>
<address>X.X.X.X</address>
<port>9099</port>
</socket-address>
</remote-addresses>
<connect-timeout>10s</connect-timeout>
</tcp-initiator>
<outgoing-message-handler>
<heartbeat-interval>5s</heartbeat-interval>
<heartbeat-timeout>4s</heartbeat-timeout>
<request-timeout>50s</request-timeout>
</outgoing-message-handler>
</initiator-config>
</remote-cache-scheme>
</caching-schemes> -
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,
JamesHi James,
In your main you can invoke DefaultCacheServer.startDaemon() method.
Regards,
Dimitri -
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
MikeSorry,
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 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 advanceyou 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. -
Remotely accessing a CCTV system - questions :)
Hi
I want to remotely access my CCTV system that's set up using multiple cameras and a DVR.
The DVR has an ethernet port to connect to a router.
The problem I think I have is that I can only get a 3G service where I am and therefore I use a 3G router with embedded sim card, and then connect an Airport Extreme to the router, and extend the 'Airport Network' with further Airport Extremes and Airport Expresses.
Standard 3G SIM service providers do not offer a fixed IP address. This isn't a problem for normal internet activity but I think it is when trying to remotely access the DVR.
So someone suggested using a DDNS or noip.com service, however I'm told that 3G providers prevent the SIM cards from being able to use these services, something to do with NAT?
So my question is, is there anything at all that I can do using my current setup? Or is my only option to run a separate 3G router with a fixed IP sim card (you can get them but they are considerably more expensive) dedicated to the DVR? Would Back to My Mac provide a possible solution?
Other than what I've mentioned I have no other real knowledge of networking etc, so please explain any answers simply!
ThanksI don't think I can use dyn.com or noip.com as I've been told that the SIM providers don't allow you to port forward on a router.
I don't really know how Back to My Mac works but I wondered if I have the DVR connected to one of my AirPort Extreme Routers could I access that router (and the DVR) using B2MM?
I also want to be able to access the DVR and settings when I'm in the house using my laptop. Can someone offer any advice on how to do this?
Much appreciated -
Client socket binding to the same local/remote addresses
Hi all,
My Java program binds client socket to local address, local port, remote address and remote port. after that from different thread the program creates new socket and bind it to the same address as the first one. The question is: is there possibility that the second socket will be copy as the first one (with the same input/output streams) so that two threads in fact use the same TCP connection.
(Operating system is HP).
Thank you,
KateI have no need to store streams, my problem that each connection has it's own messages numbers(the application implements some protocol over TCP). so if a message number 1 was sent by some connection, and when different thread wants to send a message to the same remote host, it tries to pick up existing connection, but because of a bug creates the new one, which sends the message with number 1 also. And I see that there are situation whent the first thread receives response to the message number 1 althougth it was response to the message number 1 that the second thread has sent. So my question is if there is any possibility of this absurd situation?
-
FAQ: DPA - Remote Access for test systems
Welcome to DPA - Remote Access for test systems forum!
This forum is actively monitored and moderated by SAP Integration and Certification Center (ICC).
Frequently Asked Questions:
======================================
Q1: Where can I learn more about Developer Package Service (DPA)?
Q2: How can I apply for the regular DPA service?
Q3. How many SAP systems can I access under the regular DPA service?
Q4. How can I have access to a non-shared SAP system?
======================================
Q1: Where can I learn more about Developer Package Service (DPA)?
A: Please take a look at ICC's web page on SDN:
https://www.sdn.sap.com/irj/sdn?rid=/webcontent/uuid/15330f73-0501-0010-d59e-8a32e220b2ed [original link is broken]
Q2: How can I apply for the regular DPA service?
A: Please go to http://www.sap.com/partners/apply and fill out the application form.
Q3. How many SAP systems can I access under the regular DPA service?
A: Up to 3 SAP systems, which are shared among all DPA users.
Q4. How can I have access to a non-shared SAP system?
A: Please go to http://www.sap.com/partners/apply and apply for the exclusive-use DPA service.
Message was edited by: Chung-Ho Fanhttps://discussions.apple.com/thread/5294202?tstart=0
Something you should be aware of is the frequency of IP address change at your father's location. Providers of residential broadband services lease an IP address for a certain duration which you have no control over and is purely arbitrary. You may be familiar with these changes?
The point is sometimes these addresses change regularly (4 hours to every few days) and sometimes they stay the same for a longer period of time such as a year or more.
Because of the nature of this change you may find you can remote assist your father one day but not the next. The situation is easily rectified with a simple phonecall to your father. He can tell you what IP address he's using by launching his browser and clicking this link:
http://myipaddress.com
He gives you his new IP address and you should be able to make a successful connection again.
Be aware IP addresses handed out by ISPs are known as routable. IP addresses handed out by Firewalls/Routers/Gateway devices such as Apple's Airport Express Base Station etc are not routable. Assuming you've not changed anything in the devices they will always be one of these three ranges: 192.168.1.x; 10.x.x.x and 172.16.16.x. You don't use any of these last three group of addresses to make the connection over the public external (internet) network but you do use them when on the same private internal network.
Maybe you are looking for
-
A communication error has occurred while invoking commands in SharePoint host process
Hi All, I am using Virtual box to connect to Sharepoint 2013 VPC. Due to an unexpected sutdown of my machine the VPC got some issue. Now I restored it using my bak up file. But after this when I deploy my sharepoint 2013 farm solution Iam getting the
-
My laptop has been repaired and for some reason my library on itunes has been wiped. Didn't pay attention and synced my iphone so have lost all the tunes off that now too. Ipad still has all the music on, is there an easy and free way to repopulate i
-
Hi All, Can anybody explain, what are steps to configure and execution of Capital Investment order?, Your valuable inputs will be highly appreciated. Thanks in advance, Ganesh
-
DNG CONVERTER:Which version of Camera Raw should I choose?
What I need to uinderstand, is what are the real benefits of converting RAW files into DNG for the newest version of Camera Raw( not compatible with older versions)? ( dng CONVERTER/ PREFFERENCES) If I convert a RAW file for use in older versions of
-
HELP! Security Question Reset Email Not Mine!
I Added $15 To My Account And I forgot My Security Questions And It Sent The Resuce Email To A Unknow Email.... I Need Help Fast!