Comments (6)
This also avoids potential (if very improbable) problem with the restarted
process being reassigned the same PID.
Original comment by [email protected]
on 2 Nov 2012 at 8:30
from protobuf-rpc-pro.
yes, this is feasible. My original idea was to to allow remote peers to
determine if a client has "changed" ( lost it's memory/state on reconnection ),
even if it connects from the same port. In which case the remote peer can
behave differently whether the same client reconnects or if a new client
reconnects. I will keep the System.getProperty lookup of pid - and if this is
not found, then i will fallback on a UUID. This way it is still possible for a
client which has "memory" which is stable over JVM restarts to reconnect to the
remote peer rather than be considered a new connect - by setting the pid
property to something constant.
I see that the current client bootstrap does not BIND the client's localAddress
to the port it is claiming to be. This i will fix too. I also see that i don't
give the client the possibility to choose a free local port to use as the
client's PeerInfo ( identity ) for the Bootstrap construction. To this purpose
i will add MINA's AvailablePortFinder to the code ( pitty Netty doest seem to
have one...).
In typical TCP client-server comms, a client would open a clientSocket from a
free local port ( which is what the lib is doing now).
Original comment by [email protected]
on 2 Nov 2012 at 7:18
- Changed state: Started
from protobuf-rpc-pro.
> This way it is still possible for a client which has "memory" which is stable
over JVM restarts to reconnect to the remote peer rather than be considered a
new connect - by setting the pid property to something constant.
It seems a bit clearer API if this constant could be passed to the constructor
of (client or server) bootstrap.
Original comment by [email protected]
on 2 Nov 2012 at 8:13
from protobuf-rpc-pro.
It is....through the client's PeerInfo which is given to the ClientBootstrap.
The constructor with host+port inferred the pid, but there is another
constructor which lets all 3 parameters be provided.
Anyway, i've made the change to UUID in SVN now. I will look at making a new
release shortly after including some other issues...
thanks and regard,P.
Original comment by [email protected]
on 3 Nov 2012 at 6:04
- Changed state: Fixed
from protobuf-rpc-pro.
Original comment by [email protected]
on 26 Nov 2012 at 10:52
- Changed state: Done
from protobuf-rpc-pro.
fixed with version 3.0.0 released today.
Original comment by [email protected]
on 26 Nov 2012 at 10:52
from protobuf-rpc-pro.
Related Issues (20)
- async call's timeout not really work HOT 3
- Support Java 6 HOT 3
- RpcServiceRegistry cannot remove BlockingService HOT 1
- Protocol Buffers 2.6 HOT 7
- Disabling logging HOT 3
- Python rpc support HOT 1
- Upgrade to protobuf-java 3.0.0 ( after Netty ) HOT 3
- maven not building for project HOT 3
- protoc plugin that is being used HOT 4
- Using Websockets HOT 1
- CleanShutdownHandler to shutdown RpcClientConnectionWatchdog
- RpcClientChannel support "attributes" and isClosed method.
- CleanshutdownHandler leaves Thread prohibiting JVM shutdown HOT 1
- Allow RpcClientChannel attributes on client peerWith HOT 1
- CleanShutdownHandler leaves shutdown hook registered when shutdown explicitly HOT 1
- Is this project stable enough to use in production environment? HOT 2
- WatchdogThread is not renamed to a readable thread name HOT 2
- StackOverflowError DuplexTcpClientPipelineFactory.peerWith HOT 4
- C++ impl? HOT 1
- Compile Fail by Not Found AsyncThreadPoolCallExecutor
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from protobuf-rpc-pro.