Win a copy of Beginning Java 17 Fundamentals: Object-Oriented Programming in Java 17 this week in the Java in General forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
  • Tim Cooke
  • Campbell Ritchie
  • Ron McLeod
  • Liutauras Vilda
  • Jeanne Boyarsky
  • Junilu Lacar
  • Rob Spoor
  • Paul Clapham
Saloon Keepers:
  • Tim Holloway
  • Tim Moores
  • Jesse Silverman
  • Stephan van Hulst
  • Carey Brown
  • Al Hobbs
  • Piet Souris
  • Frits Walraven

To those who are using a connection Factory, help me out please

Ranch Hand
Posts: 42
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Can you let me know if my reasoning is correct ? Thanx
I tried to replace my rmiregistry bound RemoteDataImpl object with a "Connection Factory", now I'm not sure I see things correct...
My original design was :
db package
- all classes provided by Sun
- DataInterface extends Remote contains all public Data methods throwing base class Exceptions
- LockManager nested within Data Class
- Data implements DataInterface
server package
- RemoteDataImpl extends UnicastRemoteObject implements DataInterface : methods throw RemoteException besides DatabaseExceptions and IOExceptions
RemoteDataImpl wraps a Data object and delegates all method calls
- Server : binds RemoteDataImpl to RMIRegistry
client package
- LocalDataImpl implements DataInterface. Methods throw exceptions stated in Data methods,no RemoteException.
LocalDataImpl also wraps a Data object and also delegates all method calls to this Data object
- DataProxy implements DataInterface, methods throw base class Exceptions.
Has 2 ctors : 1 for local, 1 for remote. Wraps LocalDataImpl or RemoteDataImpl depending on ctor of choice
As you can see I even used a LockManager in local mode because it was accessed via Data object
Also, changing the lock/unlock signatures was necessary

When I want to use a Connection Factory I have to achieve :

DataInterface no longer extends Remote nor throws base class Exceptions, just throwing DatabaseExc and IOExc.
RemoteDataImpl (this is the same as your Connection Object, right ??!!) no longer throws RemoteExceptions.
It still wraps a Data object, but one initialized by the connection factory (enters via ctor) (**)
- delegates lock/unlock to a Singleton LockManager's lock/unlock
- implements serializable
RMIRegistry bound ConnectionFactory returning new RemoteDataImpl objects, provided with a reference to the Data object(**)
Is this the correct way to do it ??
Thanks !!!
Posts: 17346
Mac IntelliJ IDE Spring
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Actually in mine, the ConnectionFactory and the "Connection" objects it returns are separate classes. The ConnectionFactory only has a constructor, which calls super()
Then the main which:
1. makes an instance of itself
2. creates the registry
3. makes a Data instance
4. Binds the factory into the registion
Then there is the getConnection method which creates an instance of your remote implementation, passing the Data instance to it constructor. and then returns the remote implementation to the client.
[ April 12, 2002: Message edited by: Mark Spritzler ]
Don't get me started about those stupid light bulbs.
    Bookmark Topic Watch Topic
  • New Topic