[ https://issues.apache.org/jira/browse/TRAFODION-1578?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14987369#comment-14987369 ]
liu ming commented on TRAFODION-1578: ------------------------------------- I like this idea very much. It allows user to deploy SPJ via a simple trafci command, since itself is a SPJ, so it is also very easy to integrated into a GUI manager. Need to discuss a little more: 1. Put DLL/jar as LOB or as HDFS file? HDFS file seems very good to me. 2. Location of DLL/jar at server side. $MY_SQROOT/export/lib/udr/cache is a good place, and as Kevin proposed, there are benefit to put DLL/jar files in directories per user. So we can have finer control, user A cannot call user B’s SPJ for example. So maybe we can upload the jar to $MY_SQROOT/export/lib/udr/cache/$USER If the SPJ/UDR need extra DLL/jar files, we can simply put into $MY_SQROOT/export/lib along with the SPJ jar, $MY_SQROOT/export/lib is already in CLASSPATH and LD_LIBRARY_PATH. Or we can ask the developer of UDR/SPJ to pack all required DLL/jar into a single file. > Proposal for SPJ management > --------------------------- > > Key: TRAFODION-1578 > URL: https://issues.apache.org/jira/browse/TRAFODION-1578 > Project: Apache Trafodion > Issue Type: Improvement > Components: connectivity-dcs > Reporter: Kevin Xu > > JAR upload process: > 1. Initialize JAR upload procedure by default > 2. JAR upload by Trafci(add library LIB_NAME JAR_LOCAL_PATH). Upload and > create library will be done here. And also, you can only upload the JARs by > UPLOAD command on Trafci that it will not create a lib. > Tips: Before put the JAR into HDFS check MD5 first, if the file exists, > only add a record in metadata table in case users upload the same JAR many > times on platform. > 3. On server-side, the JAR will store in HDFS. At the same time JAR > metadata(path in HDFS, MD5 of the file, and others) stores in store procedure > metadata table. > 4. create procedure is the same as now. > JAR perform process: > 1. Send a CALL by Trafci/JDBC/ODBC/ADO.NET. > 2. DCSMaster assign a DCSServer for the CALL. > 3. DCSServer start a JVM for the user. User can modify JVM options, program > properties and JAVA classpath. At the same time, a monitor class will be > starting in the JVM witch will register a node on Zookeeper for this JVM as > well as metadata info( process id, server info and so on) and the node will > be removed while JVM exiting. It allows customer to specify JVM idle time in > case of some realtime senarior like Kafka consumer. > 4. Useful commands on Trafci: list all JVMs in user; kill one of them that no > long in use; Restart JVMs with latest JARs and so on. -- This message was sent by Atlassian JIRA (v6.3.4#6332)