oodt-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Mattmann, Chris A (388J)" <chris.a.mattm...@jpl.nasa.gov>
Subject Re: Workflow with Resource manager
Date Fri, 04 May 2012 20:24:00 GMT
Hey Sheryl,

How did you start the batch stub? Does that command have access to the workflow manager
jar? That's what the error below indicates. 

Once I see how you started the batch stub we can debug from there.

Cheers,
Chris

On May 4, 2012, at 1:14 PM, Sheryl John wrote:

> Hi,
> 
> I'm trying to use Resource manger with workflow and getting the below error with the
'test' event.
> 
> I've done the following:
> 1. Set the resource mgr url in workflow.properties 
> 2. Set the jobrepo dir, nodes.dirs and nodetoqueues.dirs in resource.properties
> 3. Copy resource and workflow jars to their both libs.
> 
> Let me know if I have missed out something. I'm using 0.3 versions.
> 
> The error logs :
>  ./wmgr-client --url http://localhost:9001 --operation --sendEvent --eventName test
> May 4, 2012 12:35:22 PM sun.net.www.protocol.http.HttpURLConnection writeRequests
> FINE: sun.net.www.MessageHeader@7bd63e399 pairs: {POST / HTTP/1.1: null}{Content-Type:
text/xml}{Cache-Control: no-cache}{Pragma: no-cache}{User-Agent: Java/1.6.0_31}{Host: localhost:9001}{Accept:
text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2}{Connection: keep-alive}{Content-Length:
192}
> May 4, 2012 12:35:22 PM org.apache.oodt.cas.workflow.system.XmlRpcWorkflowManager handleEvent
> INFO: WorkflowManager: Received event: test
> May 4, 2012 12:35:22 PM org.apache.oodt.cas.workflow.system.XmlRpcWorkflowManager handleEvent
> INFO: WorkflowManager: Workflow testWorkflow retrieved for event test
> May 4, 2012 12:35:22 PM org.apache.oodt.cas.workflow.engine.IterativeWorkflowProcessorThread
setRClient
> INFO: Resource Manager Job Submission enabled to: [http://localhost:9002]
> May 4, 2012 12:35:22 PM sun.net.www.protocol.http.HttpURLConnection getInputStream
> FINE: sun.net.www.MessageHeader@5f1121f65 pairs: {null: HTTP/1.1 200 OK}{Server: Apache
XML-RPC 1.0}{Connection: close}{Content-Type: text/xml}{Content-Length: 121}
> bash-3.2# May 4, 2012 12:35:22 PM org.apache.oodt.cas.workflow.engine.IterativeWorkflowProcessorThread
checkTaskRequiredMetadata
> INFO: Task: [Hello World] has no required metadata fields
> May 4, 2012 12:35:22 PM org.apache.oodt.cas.resource.system.XmlRpcResourceManagerClient
submitJob
> FINEST: [{job.queueName=high, job.instanceClassName=org.apache.oodt.cas.workflow.structs.TaskJob,
job.name=urn:oodt:HelloWorld, job.id=, job.status=, job.load=2, job.inputClassName=org.apache.oodt.cas.workflow.structs.TaskJobInput},
{task.instance.class=org.apache.oodt.cas.workflow.examples.HelloWorld, task.config={Person=Chris},
task.metadata={TaskId=[urn:oodt:HelloWorld], WorkflowManagerUrl=[http://sherylj:9001], JobId=[4a509439-9620-11e1-8478-8322b0fa6e9f],
ProcessingNode=[sherylj], WorkflowInstId=[4a509439-9620-11e1-8478-8322b0fa6e9f]}}]
> May 4, 2012 12:35:22 PM org.apache.oodt.cas.resource.jobqueue.JobStack addJob
> INFO: Added Job: [2012-05-04T12:35:22.977-07:00] to queue
> May 4, 2012 12:35:34 PM org.apache.oodt.cas.resource.scheduler.LRUScheduler run
> INFO: Obtained Job: [2012-05-04T12:35:22.977-07:00] from Queue: Scheduling for execution
> May 4, 2012 12:35:34 PM org.apache.oodt.cas.resource.scheduler.LRUScheduler schedule
> INFO: Assigning job: [urn:oodt:HelloWorld] to node: [localhost]
> May 4, 2012 12:35:34 PM sun.net.www.protocol.http.HttpURLConnection writeRequests
> FINE: sun.net.www.MessageHeader@603b1d049 pairs: {POST / HTTP/1.1: null}{Content-Type:
text/xml}{Cache-Control: no-cache}{Pragma: no-cache}{User-Agent: Java/1.6.0_31}{Host: localhost:2001}{Accept:
text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2}{Connection: keep-alive}{Content-Length:
105}
> May 4, 2012 12:35:34 PM sun.net.www.protocol.http.HttpURLConnection getInputStream
> FINE: sun.net.www.MessageHeader@a39ab895 pairs: {null: HTTP/1.1 200 OK}{Server: Apache
XML-RPC 1.0}{Connection: close}{Content-Type: text/xml}{Content-Length: 121}
> May 4, 2012 12:35:34 PM sun.net.www.protocol.http.HttpURLConnection writeRequests
> FINE: sun.net.www.MessageHeader@2d5253d59 pairs: {POST / HTTP/1.1: null}{Content-Type:
text/xml}{Cache-Control: no-cache}{Pragma: no-cache}{User-Agent: Java/1.6.0_31}{Host: localhost:2001}{Accept:
text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2}{Connection: keep-alive}{Content-Length:
1701}
> May 4, 2012 12:35:34 PM org.apache.oodt.cas.resource.system.extern.XmlRpcBatchStub genericExecuteJob
> INFO: stub attempting to execute class: [org.apache.oodt.cas.workflow.structs.TaskJob]
> java.lang.ClassNotFoundException: org.apache.oodt.cas.workflow.structs.TaskJob
> 	at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
> 	at sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
> 	at java.lang.Class.forName0(Native Method)
> 	at java.lang.Class.forName(Class.java:169)
> 	at org.apache.oodt.cas.resource.util.GenericResourceManagerObjectFactory.getJobInstanceFromClassName(GenericResourceManagerObjectFactory.java:105)
> 	at org.apache.oodt.cas.resource.system.extern.XmlRpcBatchStub.genericExecuteJob(XmlRpcBatchStub.java:143)
> 	at org.apache.oodt.cas.resource.system.extern.XmlRpcBatchStub.executeJob(XmlRpcBatchStub.java:85)
> 	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.xmlrpc.Invoker.execute(Invoker.java:130)
> 	at org.apache.xmlrpc.XmlRpcWorker.invokeHandler(XmlRpcWorker.java:84)
> 	at org.apache.xmlrpc.XmlRpcWorker.execute(XmlRpcWorker.java:146)
> 	at org.apache.xmlrpc.XmlRpcServer.execute(XmlRpcServer.java:139)
> 	at org.apache.xmlrpc.XmlRpcServer.execute(XmlRpcServer.java:125)
> 	at org.apache.xmlrpc.WebServer$Connection.run(WebServer.java:761)
> 	at org.apache.xmlrpc.WebServer$Runner.run(WebServer.java:642)
> 	at java.lang.Thread.run(Thread.java:680)
> May 4, 2012 12:35:34 PM org.apache.oodt.cas.resource.util.GenericResourceManagerObjectFactory
getJobInstanceFromClassName
> WARNING: ClassNotFoundException when loading job instance class org.apache.oodt.cas.workflow.structs.TaskJob
Message: org.apache.oodt.cas.workflow.structs.TaskJob
> java.lang.ClassNotFoundException: org.apache.oodt.cas.workflow.structs.TaskJobInput
> 	at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
> 	at sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
> 	at java.lang.Class.forName0(Native Method)
> 	at java.lang.Class.forName(Class.java:169)
> 	at org.apache.oodt.cas.resource.util.GenericResourceManagerObjectFactory.getJobInputFromClassName(GenericResourceManagerObjectFactory.java:72)
> 	at org.apache.oodt.cas.resource.system.extern.XmlRpcBatchStub.genericExecuteJob(XmlRpcBatchStub.java:145)
> 	at org.apache.oodt.cas.resource.system.extern.XmlRpcBatchStub.executeJob(XmlRpcBatchStub.java:85)
> 	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.xmlrpc.Invoker.execute(Invoker.java:130)
> 	at org.apache.xmlrpc.XmlRpcWorker.invokeHandler(XmlRpcWorker.java:84)
> 	at org.apache.xmlrpc.XmlRpcWorker.execute(XmlRpcWorker.java:146)
> 	at org.apache.xmlrpc.XmlRpcServer.execute(XmlRpcServer.java:139)
> 	at org.apache.xmlrpc.XmlRpcServer.execute(XmlRpcServer.java:125)
> 	at org.apache.xmlrpc.WebServer$Connection.run(WebServer.java:761)
> 	at org.apache.xmlrpc.WebServer$Runner.run(WebServer.java:642)
> 	at java.lang.Thread.run(Thread.java:680)
> May 4, 2012 12:35:34 PM org.apache.oodt.cas.resource.util.GenericResourceManagerObjectFactory
getJobInputFromClassName
> WARNING: ClassNotFoundException when loading job input class org.apache.oodt.cas.workflow.structs.TaskJobInput
Message: org.apache.oodt.cas.workflow.structs.TaskJobInput
> java.lang.NullPointerException
> 	at org.apache.oodt.cas.resource.system.extern.XmlRpcBatchStub.genericExecuteJob(XmlRpcBatchStub.java:148)
> 	at org.apache.oodt.cas.resource.system.extern.XmlRpcBatchStub.executeJob(XmlRpcBatchStub.java:85)
> 	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.xmlrpc.Invoker.execute(Invoker.java:130)
> 	at org.apache.xmlrpc.XmlRpcWorker.invokeHandler(XmlRpcWorker.java:84)
> 	at org.apache.xmlrpc.XmlRpcWorker.execute(XmlRpcWorker.java:146)
> 	at org.apache.xmlrpc.XmlRpcServer.execute(XmlRpcServer.java:139)
> 	at org.apache.xmlrpc.XmlRpcServer.execute(XmlRpcServer.java:125)
> 	at org.apache.xmlrpc.WebServer$Connection.run(WebServer.java:761)
> 	at org.apache.xmlrpc.WebServer$Runner.run(WebServer.java:642)
> 	at java.lang.Thread.run(Thread.java:680)
> May 4, 2012 12:35:34 PM sun.net.www.protocol.http.HttpURLConnection getInputStream
> FINE: sun.net.www.MessageHeader@3b8352825 pairs: {null: HTTP/1.1 200 OK}{Server: Apache
XML-RPC 1.0}{Connection: close}{Content-Type: text/xml}{Content-Length: 121}
> May 4, 2012 12:35:34 PM org.apache.oodt.cas.resource.batchmgr.XmlRpcBatchMgrProxy run
> SEVERE: Job execution failed for jobId '2012-05-04T12:35:22.977-07:00' : batchstub.executeJob
returned false
> java.lang.Exception: batchstub.executeJob returned false
> 	at org.apache.oodt.cas.resource.batchmgr.XmlRpcBatchMgrProxy.run(XmlRpcBatchMgrProxy.java:125)
> May 4, 2012 12:35:43 PM org.apache.oodt.cas.workflow.engine.IterativeWorkflowProcessorThread
checkTaskRequiredMetadata
> INFO: Task: [Goodbye World] has no required metadata fields
> May 4, 2012 12:35:43 PM org.apache.oodt.cas.resource.system.XmlRpcResourceManagerClient
submitJob
> FINEST: [{job.queueName=high, job.instanceClassName=org.apache.oodt.cas.workflow.structs.TaskJob,
job.name=urn:oodt:GoodbyeWorld, job.id=, job.status=, job.load=2, job.inputClassName=org.apache.oodt.cas.workflow.structs.TaskJobInput},
{task.instance.class=org.apache.oodt.cas.workflow.examples.GoodbyeWorld, task.config={Person=Chris},
task.metadata={TaskId=[urn:oodt:GoodbyeWorld], WorkflowManagerUrl=[http://sherylj:9001], JobId=[4a509439-9620-11e1-8478-8322b0fa6e9f],
ProcessingNode=[sherylj], WorkflowInstId=[4a509439-9620-11e1-8478-8322b0fa6e9f]}}]
> May 4, 2012 12:35:43 PM org.apache.oodt.cas.resource.jobqueue.JobStack addJob
> INFO: Added Job: [2012-05-04T12:35:43.033-07:00] to queue
> May 4, 2012 12:35:54 PM org.apache.oodt.cas.resource.scheduler.LRUScheduler run
> INFO: Obtained Job: [2012-05-04T12:35:43.033-07:00] from Queue: Scheduling for execution
> May 4, 2012 12:35:54 PM org.apache.oodt.cas.resource.scheduler.LRUScheduler schedule
> INFO: Assigning job: [urn:oodt:GoodbyeWorld] to node: [localhost]
> May 4, 2012 12:35:54 PM sun.net.www.protocol.http.HttpURLConnection writeRequests
> FINE: sun.net.www.MessageHeader@6fc5f7439 pairs: {POST / HTTP/1.1: null}{Content-Type:
text/xml}{Cache-Control: no-cache}{Pragma: no-cache}{User-Agent: Java/1.6.0_31}{Host: localhost:2001}{Accept:
text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2}{Connection: keep-alive}{Content-Length:
105}
> May 4, 2012 12:35:54 PM sun.net.www.protocol.http.HttpURLConnection getInputStream
> FINE: sun.net.www.MessageHeader@2dec89095 pairs: {null: HTTP/1.1 200 OK}{Server: Apache
XML-RPC 1.0}{Connection: close}{Content-Type: text/xml}{Content-Length: 121}
> May 4, 2012 12:35:54 PM sun.net.www.protocol.http.HttpURLConnection writeRequests
> FINE: sun.net.www.MessageHeader@1bbb60c39 pairs: {POST / HTTP/1.1: null}{Content-Type:
text/xml}{Cache-Control: no-cache}{Pragma: no-cache}{User-Agent: Java/1.6.0_31}{Host: localhost:2001}{Accept:
text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2}{Connection: keep-alive}{Content-Length:
1707}
> May 4, 2012 12:35:54 PM org.apache.oodt.cas.resource.system.extern.XmlRpcBatchStub genericExecuteJob
> INFO: stub attempting to execute class: [org.apache.oodt.cas.workflow.structs.TaskJob]
> java.lang.ClassNotFoundException: org.apache.oodt.cas.workflow.structs.TaskJob
> 	at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
> 	at sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
> 	at java.lang.Class.forName0(Native Method)
> 	at java.lang.Class.forName(Class.java:169)
> 	at org.apache.oodt.cas.resource.util.GenericResourceManagerObjectFactory.getJobInstanceFromClassName(GenericResourceManagerObjectFactory.java:105)
> 	at org.apache.oodt.cas.resource.system.extern.XmlRpcBatchStub.genericExecuteJob(XmlRpcBatchStub.java:143)
> 	at org.apache.oodt.cas.resource.system.extern.XmlRpcBatchStub.executeJob(XmlRpcBatchStub.java:85)
> 	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.xmlrpc.Invoker.execute(Invoker.java:130)
> 	at org.apache.xmlrpc.XmlRpcWorker.invokeHandler(XmlRpcWorker.java:84)
> 	at org.apache.xmlrpc.XmlRpcWorker.execute(XmlRpcWorker.java:146)
> 	at org.apache.xmlrpc.XmlRpcServer.execute(XmlRpcServer.java:139)
> 	at org.apache.xmlrpc.XmlRpcServer.execute(XmlRpcServer.java:125)
> 	at org.apache.xmlrpc.WebServer$Connection.run(WebServer.java:761)
> 	at org.apache.xmlrpc.WebServer$Runner.run(WebServer.java:642)
> 	at java.lang.Thread.run(Thread.java:680)
> May 4, 2012 12:35:54 PM org.apache.oodt.cas.resource.util.GenericResourceManagerObjectFactory
getJobInstanceFromClassName
> WARNING: ClassNotFoundException when loading job instance class org.apache.oodt.cas.workflow.structs.TaskJob
Message: org.apache.oodt.cas.workflow.structs.TaskJob
> java.lang.ClassNotFoundException: org.apache.oodt.cas.workflow.structs.TaskJobInput
> 	at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
> 	at java.security.AccessController.doPrivileged(Native Method)
> 	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
> 	at sun.misc.Launcher$ExtClassLoader.findClass(Launcher.java:229)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
> 	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
> 	at java.lang.Class.forName0(Native Method)
> 	at java.lang.Class.forName(Class.java:169)
> 	at org.apache.oodt.cas.resource.util.GenericResourceManagerObjectFactory.getJobInputFromClassName(GenericResourceManagerObjectFactory.java:72)
> 	at org.apache.oodt.cas.resource.system.extern.XmlRpcBatchStub.genericExecuteJob(XmlRpcBatchStub.java:145)
> 	at org.apache.oodt.cas.resource.system.extern.XmlRpcBatchStub.executeJob(XmlRpcBatchStub.java:85)
> 	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.xmlrpc.Invoker.execute(Invoker.java:130)
> 	at org.apache.xmlrpc.XmlRpcWorker.invokeHandler(XmlRpcWorker.java:84)
> 	at org.apache.xmlrpc.XmlRpcWorker.execute(XmlRpcWorker.java:146)
> 	at org.apache.xmlrpc.XmlRpcServer.execute(XmlRpcServer.java:139)
> 	at org.apache.xmlrpc.XmlRpcServer.execute(XmlRpcServer.java:125)
> 	at org.apache.xmlrpc.WebServer$Connection.run(WebServer.java:761)
> 	at org.apache.xmlrpc.WebServer$Runner.run(WebServer.java:642)
> 	at java.lang.Thread.run(Thread.java:680)
> May 4, 2012 12:35:54 PM org.apache.oodt.cas.resource.util.GenericResourceManagerObjectFactory
getJobInputFromClassName
> WARNING: ClassNotFoundException when loading job input class org.apache.oodt.cas.workflow.structs.TaskJobInput
Message: org.apache.oodt.cas.workflow.structs.TaskJobInput
> java.lang.NullPointerException
> 	at org.apache.oodt.cas.resource.system.extern.XmlRpcBatchStub.genericExecuteJob(XmlRpcBatchStub.java:148)
> 	at org.apache.oodt.cas.resource.system.extern.XmlRpcBatchStub.executeJob(XmlRpcBatchStub.java:85)
> 	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.xmlrpc.Invoker.execute(Invoker.java:130)
> 	at org.apache.xmlrpc.XmlRpcWorker.invokeHandler(XmlRpcWorker.java:84)
> 	at org.apache.xmlrpc.XmlRpcWorker.execute(XmlRpcWorker.java:146)
> 	at org.apache.xmlrpc.XmlRpcServer.execute(XmlRpcServer.java:139)
> 	at org.apache.xmlrpc.XmlRpcServer.execute(XmlRpcServer.java:125)
> 	at org.apache.xmlrpc.WebServer$Connection.run(WebServer.java:761)
> 	at org.apache.xmlrpc.WebServer$Runner.run(WebServer.java:642)
> 	at java.lang.Thread.run(Thread.java:680)
> May 4, 2012 12:35:54 PM sun.net.www.protocol.http.HttpURLConnection getInputStream
> FINE: sun.net.www.MessageHeader@2acdb06e5 pairs: {null: HTTP/1.1 200 OK}{Server: Apache
XML-RPC 1.0}{Connection: close}{Content-Type: text/xml}{Content-Length: 121}
> May 4, 2012 12:35:54 PM org.apache.oodt.cas.resource.batchmgr.XmlRpcBatchMgrProxy run
> SEVERE: Job execution failed for jobId '2012-05-04T12:35:43.033-07:00' : batchstub.executeJob
returned false
> java.lang.Exception: batchstub.executeJob returned false
> 	at org.apache.oodt.cas.resource.batchmgr.XmlRpcBatchMgrProxy.run(XmlRpcBatchMgrProxy.java:125)
> May 4, 2012 12:36:03 PM org.apache.oodt.cas.resource.system.XmlRpcResourceManager killJob
> WARNING: Attempt to kill job: [2012-05-04T12:35:43.033-07:00]: cannot find execution
node (has the job already finished?)
> May 4, 2012 12:36:03 PM org.apache.oodt.cas.workflow.engine.IterativeWorkflowProcessorThread
stop
> WARNING: Attempt to kill current resmgr job: [2012-05-04T12:35:43.033-07:00]: failed
> 
> 
> Thanks,
> Sheryl


++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Chris Mattmann, Ph.D.
Senior Computer Scientist
NASA Jet Propulsion Laboratory Pasadena, CA 91109 USA
Office: 171-266B, Mailstop: 171-246
Email: chris.a.mattmann@nasa.gov
WWW:   http://sunset.usc.edu/~mattmann/
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Adjunct Assistant Professor, Computer Science Department
University of Southern California, Los Angeles, CA 90089 USA
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


Mime
View raw message