& ver.2 EWEB-3C-N080
PreSerV for Web MapDataManager & i
1... 1 1.1... 1 1.2... 2 1.3... 6 1.4 MDM. 7 1.5 ( )... 9 1.6 ( )...12 1.7...14 1.8...15 1.9...16 1.10...17 1.11...18 1.12 19 1.13...20 1.14...21 1.15...22 1.16 MDM...23 1.17...24 1.18...25 1.19...26 1.20...27 1.21...28 1.22...29 1.23...30 1.24...31 1.25...32 1.26...33 1.27...34 1.28...35 2...36 ii
1 1 & 1.1 Microsoft ccess MDB JDBC-ODBC mdm JDBC mdm mdm mdm 1 mdm // synservlet.java import jp.co.melco.preserv.mdm.light.*; import javax.servlet.*; import javax.servlet.http.*; public class synservlet extends mdmservlet { protected synchronized void main (HttpServletRequest request, HttpServletResponse response ) { super.main (request, response); } } 1
1 2 1.2 mdm mdm mdm 1-1 mdm mdmcallbackdata I/F mdmcallback I/F mdmnalyzerequestex I/F mdmresponsedata mdmdispatchcallback I/F mdmrequestitemex mdm mdmservlet mdmcallbackproperties mdmdatabasedispatchsupporter
1 3 1-1 1-2 1-2 mdm ID (2) ID (1) ID sessionresponsedata ID sessionrequestitemex sessiondatabasedispatchsupporter mdmcallbackdata sessioncallback sessionnalyzerequestex ID mdmcallbackproperties mdmdispatchcallback ID mdm mdmservlet
1 2 // ID // sessionsampledispatchsupporter.java public class sessionsampledispatchsupporter extends mdmdatabasedispatchsupporter { // Hashtable _hash = null; } // ID public void add_info (String id, String[] info) { Vector vect = (Vector)_hash.get(id); if (vect==null) vect = new Vector(); vect.addelement(info); _hash.put (id, vect); } // ID public Vector get_info (String id) { return (Vector)_hash.get (id); } 4
1 3 // // sessionsamplenalyzerequestex.java public class sessionsamplenalyzerequestex implements mdmnalyzerequestex { public Statement[] tostatement ( mdmcallbackdata data, mdmcallbackproperties prop, Connection con) throws java.lang.exception { // sessionsampledispatchsupporter ssds = (sessionsampledispatchsupporter)prop.get(prop.disptch_supporter); // ID HttpServletRequest hsrequest = (HttpServletRequest)prop.get(prop.HTTP_SERVLET_REUEST); HttpSession hsession = hsrequest.getsession(); // ID ssds.add_info (item.get_id(), [ ID ]); } } MapDataManager & Sample1.2 5
1 1.3 MapDataManager 6
1 1.4 MDM MDM psvmdmmapex psvmdmmapex#reflect_mdm() MDM psvmdmmapex#insert_data() change_data() erase_data() psvmdmmapex reflect_mdm send_data(string, Vector) MapDataManager send_data() 4 send_data() // send_data() // Ex_psvMdmMapEx.java public class Ex_psvMdmMapEx extends psvmdmmapex { // Vector _batch_items = new Vector(); // public void add_batch_request(mdmrequestitem item, String gk) { mdmrequestset rs = set_requestset (item, gk); _batch_items.addelement(rs); } 7
1 // public void init_batch_request() { _batch_items = new Vector(); } // public Vector send_data (String url, Vector senddata) { // for (int i=0; i<_batch_items.size(); i++) { mdmupdatedbrequestdata urd = new mdmupdatedbrequestdata( (mdmrequestset)_batch_items.elementt(i)); senddata.addelement(urd); } } } // send_data() return super.send_data (url, senddata); [ ] psvmdmmapex mdm_map=mdm mdmrequestitem item = [ ]; mdm_map.add_batch_request (item, [ ]); try { boolean ret = mdm_map.reflect_mdm(); if (!ret) System.out.print ("reflect failed. "); else mdm_map.init_batch_request(); } catch(exception e){ e.printstacktrace() ; } 8
1 1.5 ( ) [ ] JDK 1.4 DB Oracle 1-1 BSIC01 MESH01 SHPEDT01 SUBDT01 SEUENCE_NO ZOKUSEIDT1 1-2 NUMBER(10) CHR(20) SL SL mdmnalyzeselectshapedataex extens SL 9
1 5 SL // select...,subdt01.zokiseidt1 from...,subdt01 where SUBDT01.SEUENCE_NO=SHPEDT01.SEUENCE_NO... and 6 // addsubnalyzeselectshapedataex.java // SL public class addsubnalyzeselectshapedataex extends mdmnalyzeselectshapedataex { // SL public String[] tosl (mdmrequestitem item) { String[] sql = super.tosl(item); String add_select = ",SUBDT01.ZOKUSEIDT1 "; String add_from = ",SUBDT01 "; String add_where = " SUBDT01.SEUENCE_NO=SHPEDT01.SEUENCE_NO and "; // for j2sdk1.4 sql[0] = sql[0].replacell("from", add_select+"from"); sql[0] = sql[0].replacell("where", add_from+"where"+add_where); } } return sql; mdmfilterselectshapedataex 7 // addsubfilterselectshapedataex.java 10
1 // SL public class addsubfilterselectshapedataex extends mdmfilterselectshapedataex { // public void add_attrib (psvshape shape, Object[] result) { super.add_attrib (shape, result); shape.set_values ("ZokuseiData1", result[result.length-1]); } } MapDataManager Callback 8 // MapDataManager mdmprop.xml [ ] <CallbackClass callbackname="nalyzeselectshapedataex" classify="dtbse40"> jp.co.melco.preserv.mdm.light.mdmnalyzeselectshapedataex </CallbackClass> <CallbackClass callbackname="nalyzeselectshapedataex" classify="dtbse40"> addsubnalyzeselectshapedataex </CallbackClass> [ ] <CallbackClass callbackname="filterselectshapedataex" classify="stndrd"> jp.co.melco.preserv.mdm.light.mdmfilterselectshapedataex </CallbackClass> <CallbackClass callbackname="filterselectshapedataex" classify="stndrd">addsubfilterselectshapedataex </CallbackClass> 11
1 1.6 ( ) 1.5 extend2-1 SL SL mdmnalyzeselectshapedataex extens SL 9 SL // select... from...,bsic01 where BSIC01.EXTEND2!=-1 and... 10 // addsubnalyzeselectshapedata2ex.java // SL public class addsubnalyzeselectshapedata2ex 12
1 extends addsubnalyzeselectshapedataex { public addsubnalyzeselectshapedata2ex () {super();} // SL public String[] tosl (mdmrequestitem item) { String[] sql = super.tosl(item); String add_from = ",BSIC01 "; String add_where = " SHPEDT.SEUENCE_NO=BSIC01.SEUENCE_NO + and BSIC01.EXTEND2!=-1 and "; // for j2sdk1.4 sql[0]= sql[0].replacell("where", add_from+"where"+add_where); } return sql; } MapDataManager Callback 11 // MapDataManager mdmprop.xml [ ] <CallbackClass callbackname="nalyzeselectshapedataex" classify="dtbse40"> addsubnalyzeselectshapedataex </CallbackClass> <CallbackClass callbackname="nalyzeselectshapedataex" classify="dtbse40"> addsubnalyzeselectshapedata2ex </CallbackClass> 13
1 1.7 mdmnalyzerequestex PreSerV SL Statement DB mdmcallback MapDataManager & Sample1.7 14
1 1.8 MapDataManager MDM CallableStatement CallableStatement mdmupdateresponsedata mdmupdateresponsedata#get_result() -1 mdmupdateresponsedata#get_status() true 15
1 1.9 MapViewer & 1. a) JR JR JR JR b) [mdmselectshapeexconvertshape] 16
1 1.10 1. mdmprop.xml 2. DB char 10 [0123456789BC] [0123456789] [BC] [0123456789BC] 17
1 1.11 DB jp.co.melco.preserv.mdm.mdmservlet][main]receiveerror.(requestdata): java.io.streamcorruptedexception: Type code out of range, is 47 at java.io.objectinputstream.peekcode(objectinputstream.java) at java.io.objectinputstream.readobject(objectinputstream.java) at java.io.objectinputstream.readobject(objectinputstream.java) at java.io.objectinputstream.inputrray(objectinputstream.java) [ ] WebSphere ver.4.0.1 DataBase Java VM Oracle 8i J2RE 1.3.0 IBM build [ ] Java VM SUN J2RE 1.3.1_02 IBM VM(J2RE 1.3.0 IBM build) VM 18
1 1.12 ( psvshape ) MDM Java serialver serialversionuid Java serialver Java SDK serialversionuid ------------------------------------------------------------ < > ------------------------------------------------------------ Local class not compatible: stream classdesc serialversionuid=xxxxxxxxxxxxxxxxxxx local class serialversionuid=yyyyyyyyyyyyyyyyyyy ------------------------------------------------------------ XXXX... YYYY... stream serialversionuid serialversionuid 19
1 1.13 20
1 1.14 MDM 21
1 1.15 CHR(4) (INTEGER) INTEGER 22
1 1.16 MDM 23
1 1.17 ( BehaviorUnit initial_context_factory ) ( BehaviorUnit provider_url ) ( BehaviorUnit security_principal ) ( BehaviorUnit security_credentials ) 24
1 1.18 25
1 1.19 26
1 1.20 27
1 1.21 MDM Ver.3 Ver.3 (2000 ) JV JV 28
1 1.22 psvshape#set_value() psvrgs#setserial() 29
1 1.23 Object#clone() Cloneable ( ) CloneNotSupportedException psvrgs user_data = psvshape.get_values("mdm_key"); user_data.del("mdm_key"); 30
1 1.24 MDM JDBC MDM DBConnection URL jdbc URL V3.0 SP9 URL _url DataSource ds = (DataSource) context.lookup(_url) ; V4.0 JRun3.0 Oracle <DBConnection name="connectionpooloracle"> <driver>dummydriver</driver> <dburl>java:comp/env/jdbc/cpooloracle</dburl> <user>dummyuser</user> <password>dummypass</password> </DBConnection> 31
1 1.25 "big_scale" 32
1 1.26 33
1 1.27 MDM MDM 100 classify="bsic" classify="shpe" classify="subdtxxx" XXX MDM 100 34
1 1.28 35
2 2 & 36
CHNGE REV. ITEM CONTENTS DTE ver.1 2004.4 ver.2 1.12-1.28 2004.6 37