Richard Huddleston created DERBY-6430:
-----------------------------------------
Summary: ClassNotFoundException when invoking a table function
with declared in another classpath
Key: DERBY-6430
URL: https://issues.apache.org/jira/browse/DERBY-6430
Project: Derby
Issue Type: Bug
Components: Network Server
Affects Versions: 10.10.1.1
Environment: jboss
Reporter: Richard Huddleston
Priority: Blocker
we run a derby network server in jboss, and want to be able to allow deployed
ears to expose their functionality through derby VTI. ears run in their own
classloader seperate from the common derby network server started in jboss.
unfortunately there is no way to register a function in derby and have it
record the classloader which registered the function, and which should be used
resolve the function class. the problem is that when we use ij to connect to
the jboss instance, or even another ear in the same jboss, to call the declared
function, derby says it can't resolve the function class. that is because
derby does not remember which ear the function was declared in, and is only
searching the "root" jboss class libs for the function. obviously, the only
way to work around this is to NOT deploy our functions in ears, but that breaks
the "cloud" like system we have for deployment.
obviously, the classloaders would be wrong after a "reboot" of derby, the
classloader would no longer existing. so to solve our bug with our current
deployment model, i think we need to be able to have a new sql call for derby
to create a "transient function", a function which does not last across reboots
something like a modification to this call
instead of
CREATE FUNCTION externalEmployees
()
...
we need something like this
CREATE FUNCTION USING_THIS_CLASSLOADER externalEmployees
()
...
or
CREATE TRANSIENT_FUNCTION externalEmployees
()
...
--
This message was sent by Atlassian JIRA
(v6.1.4#6159)