C
Chris
Is there any way to detect when a class has been loaded by two different
class loaders?
Our app has a class that reads and writes a file on disk. The file gets
corrupt if more than one process gets at it at once. We can detect
multiple processes by locking the file on disk and throwing an error; no
problem. We can control access by multiple threads using
synchronization. So far, so good.
The problem is Websphere. When this class gets used in a webapp,
Websphere, like most other app servers, creates a classloader just for
that webapp. But it does more than that; it creates multiple
classloaders and they all load the class independently. And we get
corruption.
Other than fix Websphere (and we're working on it), is there another
way, in general, we can use to ensure that only one classloader within a
JVM loads a given class?
class loaders?
Our app has a class that reads and writes a file on disk. The file gets
corrupt if more than one process gets at it at once. We can detect
multiple processes by locking the file on disk and throwing an error; no
problem. We can control access by multiple threads using
synchronization. So far, so good.
The problem is Websphere. When this class gets used in a webapp,
Websphere, like most other app servers, creates a classloader just for
that webapp. But it does more than that; it creates multiple
classloaders and they all load the class independently. And we get
corruption.
Other than fix Websphere (and we're working on it), is there another
way, in general, we can use to ensure that only one classloader within a
JVM loads a given class?