ECPã®çšèª
ãããã¯ãæãäžããåã«ãECPã«é¢é£ããåºæ¬æŠå¿µãæãåºããŠãã ããã
ECP ããŸãã¯åæ£ãã£ãã·ã¥ãããã³ã«ã¯ãããŒã¿ãµãŒããŒãšã¢ããªã±ãŒã·ã§ã³ãµãŒããŒéã®çžäºäœçšã®äžæ žã§ãã ä¿¡é Œæ§ã®é«ããã±ãã転éãæäŸããTCP / IPã®äžã§å®è¡ãããŸãã ECPã¯ã€ã³ã¿ãŒã·ã¹ãã ãºãææããŠããŸãã
ããŒã¿ãµãŒããŒïŒDBMSïŒïŒECPãµãŒããŒãšãåŒã°ããïŒã¯ãããŒã«ã«ã¢ããªã±ãŒã·ã§ã³ããŒã¿ããŒã¹ããã¹ãããäžè¬çãªCachéã€ã³ã¹ããŒã«ã§ãã ãlocatedããšããåè©ã¯ãæåã©ããã«è§£éããªãã§ãã ãããããšãã°ãiSCSIãŸãã¯FCãä»ããŠã¢ã¯ã»ã¹å¯èœãªãããã¯ãŒã¯ã¹ãã¬ãŒãžã·ã¹ãã äžã«ããŒã¿ããŒã¹ãç©ççã«é 眮ã§ããŸãã DBMSãããããããŒã«ã«ãšèŠãªãããšãéèŠã§ãã
ECPã¯ã©ã€ã¢ã³ããšåŒã°ããããšãããã¢ããªã±ãŒã·ã§ã³ãµãŒããŒïŒSPïŒã¯ãã¢ããªã±ãŒã·ã§ã³ã·ã¹ãã ãŠãŒã¶ãŒã«ãµãŒãã¹ãæäŸããããã»ã¹ãå®è¡ããäžè¬çãªCachéã€ã³ã¹ããŒã«ã§ãã èšãæãããšãã¢ããªã±ãŒã·ã§ã³ã³ãŒãã¯ã¢ããªã±ãŒã·ã§ã³ãµãŒããŒäžã§å®è¡ãããŸãïŒãã®ããããã®ååã§ãïŒã ãããã¯äžè¬çãªCachéã€ã³ã¹ããŒã«ã§ãããããCACHESYSãCAââCHELIBãCACHETEMPãªã©ã®ã·ã¹ãã ããŒã«ã«ããŒã¿ããŒã¹ã®æšæºã»ããããããŸãã ããã¯éèŠã§ãããéèŠãªããšã§ã¯ãããŸããã ããŒã¿ãµãŒããŒã«å¯ŸããŠããŒã«ã«ãªã¢ããªã±ãŒã·ã§ã³ããŒã¿ããŒã¹ããã¢ããªã±ãŒã·ã§ã³ãµãŒããŒäžã®ãªã¢ãŒãããŒã¿ããŒã¹ãšããŠããŠã³ããããããšã¯ãã¯ããã«éèŠã§ãã äžè¬ã«ãçžäºäœçšã¹ããŒã ã¯å³ã«ç€ºãããŠããŸãã
ECPã®äž»èŠã³ã³ããŒãã³ã
ããŒã¿ãã£ãã·ã¥ãšã¯äœã§ããã説æããå¿ èŠã¯ãããŸããã ECPãããã³ã«ã®ååã«è¡šç€ºãããåæ£ãã£ãã·ã¥ã¯ãäžè¬çã«ã¯æ¯metaã«éããŸããããã£ãã·ã¥ã¯ããã¡ããããŒã«ã«ã§ãã ãã ãããªã¢ãŒãã°ããŒãã«ããŒããã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã§èªã¿åããããšã察å¿ãããããã¯ãããŒã¿ãµãŒããŒãã£ãã·ã¥ããã¢ããªã±ãŒã·ã§ã³ãµãŒããŒãã£ãã·ã¥ã«ã³ããŒããããããåãã°ããŒãã«ã®é£æ¥ããŒããžã®ç¹°ãè¿ãåŒã³åºããããŒã«ã«ã§çºçãããããã¯ãŒã¯ãšããŒã¿ãµãŒããŒã«å床ã¢ã¯ã»ã¹ããå¿ èŠã¯ãããŸããã ã·ã¹ãã ãé·ãåäœããã»ã©ããžã§ã€ã³ããã³ãã£ãŒã®ããŒã«ã«ãã£ãã·ã¥ãåããé¢é£æ§ãé«ããªãïŒãããŒãããåäžããã»ã©ïŒããããã¯ãŒã¯ã¢ã¯ã»ã¹æäœãçºçããé »åºŠãå°ãªããªããŸãã çæ³çã«ã¯ãããŒã¿ãµãŒããŒããã®ç¹°ãè¿ãèªã¿åãã«ã¯ãå€æŽãããããŒã¿ã®ã¿ãå¿ èŠã§ãã åæ£ïŒãµãŒããŒéïŒãã£ãã·ã¥ã®ååšã®é¯èŠããããŸãã
èšé²ã¯ããè€éã§ããæžã蟌ã¿èŠæ±ã¯ããŒã¿ãµãŒããŒã«éãããŸãã ããŒã¿ãµãŒããŒã¯ããã£ãã·ã¥ãããããã¯ãæ¶å»ããã³ãã³ããéä¿¡ãã以åã«ãã£ãã·ã¥å ã®ãã®ãããã¯ã®åã®ç¶æ ãèªã¿åã£ãã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã«ã®ã¿éä¿¡ããŸãã ãããã誰ããããå¿ èŠãšããªãã®ã§ãå€æŽããããããã¯èªäœã匷å¶çã«éä¿¡ãããªãããšãéèŠã§ãã å床ãã®å¿ èŠãããå Žåããããã¯ã¯åã³ããŒã¿ãµãŒããŒããèŠæ±ãããåè¿°ã®ããã«ã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã®ããŒã«ã«ãã£ãã·ã¥ã«åã³èœã¡ãŸãã
建ç¯å®¶ã®ç®ããèŠãECP
åæ¥çäžæïŒECPã䜿çšããæ°Žå¹³ã¹ã±ãŒãªã³ã°ã®å©ç¹ã«ã€ããŠå°ã説æããŸãã 10,000ãŠãŒã¶ãŒã®ã·ã¹ãã ãèšç»ããå¿ èŠããããšãã1 CPUã³ã¢ãš10 GB RAMã®éã§50ãŠãŒã¶ãŒããšã«ã³ã³ãã¥ãŒãã£ã³ã°ãªãœãŒã¹ãå¿ èŠã§ããããšãããã£ãŠãããšããŸãã éžæè¢ãæ¯èŒããŸãã SBDïŒSPããŒãã«ã«ã¯ãåŸæ¥ã®CachéãµãŒããŒããããŸãïŒããŒã¿ããã³ã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã¯ã1ã€ã®ããã«ã«ãïŒã ãã©ãŒã«ããã¬ã©ã³ã¹ã®çç±ããã2ã€ã®èšç»ãå¿ èŠã§ãã
åçŽå¯Ÿ æ°Žå¹³ã¹ã±ãŒãªã³ã°
åçŽã¹ã±ãŒãªã³ã° | æ°Žå¹³ã¹ã±ãŒãªã³ã° | ||
---|---|---|---|
ãµãŒããŒãªãã·ã§ã³ | ãµãŒããŒã®æ° | ãµãŒããŒãªãã·ã§ã³ | ãµãŒããŒã®æ° |
200 CPUã³ã¢ã2 TB RAM | 2 SBDããã³SP | 16ã³ã¢CPUã160 GB RAM | 13 SPã2 SBD |
æ°Žå¹³ã¹ã±ãŒãªã³ã°ã®ã¹ããŒã ã§ã¯ãåãçç±ã§ã2å°ã®ããŒã¿ãµãŒããŒãèšç»ããŸããããã®ã¹ããŒã ã®äŸ¡æ Œåªäœæ§ã以åã®ãã®ãããçŽåŸãããå¿ èŠã¯ãªããšæããŸã...ããŒãã¹ãšããŠãECPãšãã©ãŒãªã³ã°ã®äœµçšã®çŽ æŽãããæ©èœãååŸããŸãïŒããŒã¿ãµãŒããŒãåãæ¿ãããšã-ãã©ãŒãã¢ã®ããŒã-ã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã®ãŠãŒã¶ãŒã¯ãäœæ¥ã®äžæåæ¢ïŒç§åäœã§æž¬å®ïŒã®ã¿ãçµéšãããã®åŸã¯ã»ãã·ã§ã³ãç¶ç¶ããŸãã 瞊ã®å³ã§ã¯ãã¯ã©ã€ã¢ã³ãããã»ã¹ã¯ããŒã¿ãµãŒããŒã«çŽæ¥æ¥ç¶ãããŠããããããµãŒããŒãåãæ¿ãããšãããŠãŒã¶ãŒã»ãã·ã§ã³ã®äžæã¯é¿ããããŸããã
ECPãšãã©ãŒã®å ±æ
åã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã«ã¯ããŒã«ã«ããŒã¿ããŒã¹ããããããäžéããŒã¿ã®ã¹ãã¬ãŒãžã¯ãããã®ããŒã¿ããŒã¹ã«èªç¶ã«è»¢éãããããšãæãåºããŠãã ããã ãã®ãããªäœæ¥ã¯éåžžã«æ¿ããå¯èœæ§ããããŸããã€ãŸããå€æ°ã®äœã³ã¹ãã®ãã£ã¹ã¯ãå«ããããšã§äžå€®ã¹ãã¬ãŒãžã·ã¹ãã ïŒSHDïŒããªãããŒãã§ãããããäžéããŒã¿çšã®å¥ã®é«äŸ¡ãªã¹ãã¬ãŒãžã·ã¹ãã ã䜿çšããã«ãã£ã¹ã¯æäœãåŸ æ©ïŒåŸ æ©ïŒããæéãççž®ã§ããŸãã
ããã°ã©ããŒããèŠãECP
ãéåžžã®ãããã°ã©ã ã¯ãšãªã¢ã§æ©èœããããã次ã®åœ¢åŒã®æ§é ãå€æŽããå¿ èŠã¯ãããŸãã^ | "^^ cïŒ\ intersystems \ cache \ mgr \ qmsperf" | QNaz to ^ | "^ PERF ^ cïŒ\ intersystems \ cache \ mgr \ qmsperf "| QNazã ãããã®æ©èœã¯ãã¹ãŠããªã¢ãŒãããŒã¿ãµãŒããŒãšãªã¢ãŒãããŒã¿ããŒã¹ã®å®çŸ©ã®Cachéæ§æã«é ãããŠããŸãã ããã»ã¹ã®çŸåšã®é å以å€ã®é åã®ã°ããŒãã«ãåç §ããå¿ èŠãããå Žåã§ãããã®ãããªåŒã³åºãã®æ§æïŒ^ | "qmsperf" | QNazïŒã¯å€ãããŸããã
ã°ããŒãã«ããŒã¿ãæäœããã»ãã³ãã£ã¯ã¹ãå®éã«ã¯å€æŽãããŸãããããŒã«ã«ããŒã¿ããŒã¹ãæäœããã ãã§ãéåžžã¯èããŠããŸããã äž»ãªãã€ã³ãããªã¹ãããŸãã
â¢ãã¹ãŠã®æäœã¯ãåæïŒãã¹ãŠã®èªã¿åãé¢æ°ïŒ$ Getã$ Orderãªã©ãLockããã³$ IncrementïŒãšéåæïŒããŒã¿èšé²ïŒSetãKillãªã©ïŒã«åããããŸãã ããã°ã©ã ãããã«å®è¡ããŠããéåææäœã®å®äºãåŸ ã€å¿ èŠã¯ãããŸããã åææäœã®å Žåãããã¯åœãŠã¯ãŸããŸããã ECPã®å ŽåãããŒã¿ãããã¯ãããŒã«ã«ãã£ãã·ã¥ã«ãªãå ŽåãããŒã¿ãµãŒããŒãžã®è¿œå ã¢ã¯ã»ã¹ãå¿ èŠã«ãªãå ŽåããããŸãã
â¢åææäœã¯ãåãã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã«ãã£ãŠéå§ãããéåææäœã®å®äºãåŸ æ©ããŸããã
â¢Lockã³ãã³ãã¯ãåã®ããã¯ãã¹ã¿ãŒã«ãã£ãŠéå§ãããããŒã¿ã¬ã³ãŒããå®äºãããŸã§åŸ æ©ããŸãã
â¢ããã¯ã¿ã€ã ã¢ãŠãã®æéã¯ãä»ã®èª°ããããã¯ãææããŠããããšãä¿èšŒãããã®ã§ã¯ãããŸããã
ãããŠãããã«ããã€ãã®ç°åžžãªç¬éããããŸãïŒ
â¢ãããã¯ãµã€ãºã®ååããé·ãè¡ã¯ãã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã«ãã£ãã·ã¥ãããŸããã å®éã8 KBãããã¯ïŒ3900ãã€ãïŒã®å Žåããã®ãããå€ã¯ãããã«äœããªããŸãã ãã®æ±ºå®ã¯ããã£ãã·ã¥ãBLOBããã³CLOBã§è©°ãŸãããªãããã«éçºè ã«ãã£ãŠè¡ãããŸãããéåžžããã®ãããªããŒã¿ã¯1åæžã蟌ãŸãããã®åŸéåžžã«ãŸãã«ããèªã¿åãããŸããã æ®å¿µãªããããã®æ±ºå®ã¯ããããããã€ã³ããã¯ã¹ã®åŠçã«æªåœ±é¿ãäžããŸããããããååãšããŠé·ãæååã§ãã ãããã䜿çšããå Žåããã£ã³ã¯ã®ãµã€ãºãå°ãããããããããã¯ã®ãµã€ãºã倧ããããå¿ èŠããããŸãã æé©ãªéžæã¯ããã¹ãçµæã«åºã¥ããŠã®ã¿è¡ãããšãã§ããŸãã
â¢å²ãåœãŠ
set i = $ Increment ïŒ^ aïŒ
æ©èœçã«è¿ããã®ãããé«äŸ¡ã«ãªãå ŽåããããŸãã
lock + ^ a ã»ãã ïŒ i ã^ aïŒ= ^ a + 1 lock- ^ a
å®éã«ã¯ã$ Incrementé¢æ°ã¯åžžã«ããŒã¿ãµãŒããŒã§å®è¡ããããããã©ãŠã³ãããªãããã±ããã®ç§»åã®å®äºãåŸ ã€ããšã¯é¿ããããŸããããŸããããã¯ã¯ãããŸããŸãªã¢ããªã±ãŒã·ã§ã³ãµãŒããŒããã®ããã»ã¹ãèŠæ±ããå Žåã«ã®ã¿åæ§ã®å¹æãåŒãèµ·ãããŸãã
â¢<NETWORK>ãšã©ãŒãåŠçããŸãã ãã®ãããªãšã©ãŒã¯ã ãªã«ããªãåŸ æ©ããæé ïŒããã©ã«ãã§ã¯1200ç§ïŒã®éãã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã倱ãããECPæ¥ç¶ã埩å ã§ããªãå Žåã«çºçããŸãã ãããåŠçããæ£ããæ¹æ³ã¯ãéå§ãããã©ã³ã¶ã¯ã·ã§ã³ãããŒã«ããã¯ããŠãåè©Šè¡ããããšã§ãã
ECPããã³ããã»ã¹ç®¡ç
ECPã®åºæ¬æŠå¿µãæŽæ°ããèšäºã®ã¡ã€ã³ãããã¯ã«ç§»ããŸãããã ããã»ã¹ç®¡çã¯åºçŸ©ã«è§£éãããŸãã 察åŠããªããã°ãªããªãã¢ããªã±ãŒã·ã§ã³ããã°ã©ãã®å®éã®ããŒãºãããã³ãããããããã«ãæºè¶³ãããããã«å©çšã§ããã·ã¹ãã ããŒã«ã«ã€ããŠã¯ã以äžãåç §ããŠãã ããã
äž»èŠãªã¢ããªã±ãŒã·ã§ã³ããã»ã¹ç®¡çã®ããŒãº
æ©èœ | ECPãªã | ECPãäœ¿çš |
---|---|---|
ããã¯ã°ã©ãŠã³ãããã»ã¹ã®å®è¡ã | ä»äº
$ jobã$ zchildã$ zparent | Jobã³ãã³ãã¯ãããã¯ãŒã¯äžã§æ©èœããŸããããã©ã¡ãŒã¿ãŒãæž¡ããŸããã
ããã»ã¹çªå·ã¯ãåãµãŒããŒå ã§ã®ã¿äžæã§ãã |
ããã»ã¹ã®ã掻æ°ãã远跡ããŸãã | $ããŒã¿ïŒ^ $ãžã§ãïŒpidïŒïŒ | å¥ã®ãµãŒããŒã®ããã»ã¹ããŒãã«ãžã®ã¢ã¯ã»ã¹ã¯ãããŸããã |
ããã»ã¹ã®ãªã¹ããååŸããŸãã | $泚æïŒ^ $ãžã§ãïŒpidïŒïŒ
$ zjobïŒpidïŒ | äžèšãåç §ããŠãã ããã |
ä»ã®ããã»ã¹ã®ããããã£ãžã®ã¢ã¯ã»ã¹ã | | äžèšãåç §ããŠãã ããã |
å¥ã®ããã»ã¹ã®å®äºã | ã¯ã©ã¹SYS.Process | å¥ã®ãµãŒããŒã§ããã»ã¹ãå®äºããããšã¯ã§ããŸããã |
ãããã®ã課é¡ãã«å¯Ÿããçãã¯ãUtil.Procã¯ã©ã¹ã®åœ¢åŒã§å®è£ ãããããã»ã¹å¶åŸ¡APIã®éçºã§ããã
ããã«èªã¿ãããããããã«ãAPIã䜿çšããç°¡åãªã³ãŒãäŸãããã€ã玹ä»ããŸãã
Util.Proc APIã®äŸ
â¢å»çæ å ±ã·ã¹ãã ïŒMISïŒã®é åãšãŠãŒã¶ãŒåã瀺ãããã»ã¹ã®ãªã¹ãã衚瀺ããèªåã®ïŒçŸåšã®ïŒããã»ã¹ã«ã*ããããŒã¯ããŸãã
cnt = 0ã èšå®
{
set proc = ## class ïŒ Util.Proc ïŒã NextProc ïŒ proc ããSc ïŒ quit ïŒ proc = "" || ' sc //次ã®ããã»ã¹
write proc _ $ select ïŒ ## class ïŒ Util.Proc ïŒ ãProcIsMy ïŒ proc ïŒïŒ "*" ã1ïŒ "" ïŒ //èªåèªèº«ã«ã*ããããŒã¯
ãã¹ã³ãŒãïŒããš æžã
##ã¯ã©ã¹ ïŒ Util.Proc ïŒã èšè¿°ã ãŸãã GetProcProp ïŒ proc ã "NameSpace" ïŒ //ããã»ã¹ããããã£ïŒçŸåšã®ã¹ã³ãŒã
ãuserïŒããš æžã
##ã¯ã©ã¹ ïŒ Util.Proc ïŒã èšè¿°ã ãŸãã GetProcVar ïŒ proc ã $ name ïŒ qARM ïŒ "User" ïŒïŒïŒïŒïŒ //ããã»ã¹å€æ°ïŒMISãŠãŒã¶ãŒå
cnt = cnt +1ã èšå®
}
ãåèšïŒã _ cnt _ ãããã»ã¹ ããš æžã蟌㿠ãŸãã
â¢åãMISãŠãŒã¶ãŒåã§å®è¡ãããŠããå ŽåãçŸåšã®ããã»ã¹ä»¥å€ã®ããã»ã¹ãåé€ããŸãïŒãŠãŒã¶ãŒãåå ¥åã§ããªãããã«ããŸãïŒã
if ' ##ã¯ã©ã¹ ïŒ Util.Proc ïŒã ProcIsMy ïŒ proc ïŒã
##ã¯ã©ã¹ ïŒ Util.Proc ïŒã GetProcVar ïŒ proc ã $ name ïŒ qARM ïŒ "User" ïŒïŒïŒ= $ name ïŒ qARM ïŒ "User" ïŒïŒ {
set res = ## class ïŒ Util.Proc ïŒã KillProc ïŒ proc ïŒ
}
ãããã¯ãŒã¯äžã®ããã»ã¹ã®ã¢ãã¬ã¹æå®
APIãéçºãããšããECPãããã¯ãŒã¯å ã®ããã»ã¹ãã¢ãã¬ã¹æå®ããæ¹æ³ãéžæããå¿ èŠããããŸããã
â¢ããŒã«ã«ãããã¯ãŒã¯å ã®ã¢ãã¬ã¹ã®äžææ§ã
â¢æå°éã®å€æã§äœæãçŽæ¥äœ¿çšããæ©èœã
â¢èªã¿ããã圢åŒã
ãããã¯ãŒã¯äžã®ãµãŒããŒã®ã¢ãã¬ã¹ãæå®ããã«ã¯ããã®ååïŒãã¹ãåïŒãŸãã¯IPã¢ãã¬ã¹ã䜿çšã§ããŸãã èå¥åãšããŠã®ååã®éžæã¯ãé åçã§ã¯ãããŸãããããŒã ãµãŒãã¹ã®éã®æã¡ã©ããã®ãªãè¿œå ã®èŠä»¶ã課ããŸãã éåžžãCachéã®æ§ææã«ãã®ãããªèŠä»¶ã¯èª²ãããªããããæ°ããå¶éãå°å ¥ããããããŸããã§ããã ããã«ãããŸããŸãªãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§ã¯ããã¹ãåã®åœ¢åŒãç°ãªãå Žåãããããã®åŸã®ããã»ã¹èšè¿°åã®åæãè€éã«ãªããŸãã ãããã®èæ ®äºé ã«åºã¥ããŠãIPv4ã¢ãã¬ã¹ã䜿çšããããšã奜ã¿ãŸããã
ãµãŒããŒäžã®Cachéã€ã³ã¹ããŒã«ãèå¥ããã«ã¯ããã®ååïŒãCACHEãããCACHEQMSããªã©ïŒãŸãã¯ã¹ãŒããŒãµãŒããŒã®ããŒãçªå·ïŒ1972ã56773ãªã©ïŒã䜿çšã§ããŸãã ãã ããååã§Cachéã€ã³ã¹ããŒã«ã«æ¥ç¶ããããšã¯ã§ããªããããããŒããéžæããŸãã
ãã®çµæãããã»ã¹ã®èšè¿°åïŒäžæã®èå¥åïŒãšããŠã10é²æ°åœ¢åŒã®æååã䜿çšããããšã決å®ãããŸããïŒxx.yy.zz.uu.Port.PIDãããã§
xx.yy.zz.uu-CachéãµãŒããŒã®IPv4ã¢ãã¬ã¹ã
ããŒã-Cachéã¹ãŒããŒãµãŒããŒã®TCPããŒãã
PIDã¯ãCachéãµãŒããŒäžã®ããã»ã¹çªå·ã§ãã
æå¹ãªããã»ã¹èšè¿°åã®äŸïŒ
192.168.11.19.56773.1760-IP = 192.168.11.19ããã³ããŒã= 56773ã®Cachéã€ã³ã¹ããŒã«ã§ã®PID = 1760ã®ããã»ã¹ã
192.168.11.77.1972.62801-IP = 192.168.11.77ããã³ããŒã= 1972ã®Cachéã€ã³ã¹ããŒã«ã§ã®PID = 62801ã®ããã»ã¹
Util.Procã¯ã©ã¹ã¡ãœãã
ãã®çµæãUtil.Procã¯ã©ã¹ãéçºãããŸããããã®ãããªãã¯ã¡ãœããã以äžã«ç€ºããŸãã ãã¹ãŠã®ã¡ãœããã¯ã¯ã©ã¹ã¡ãœããïŒClassMethodïŒã§ãã
ããã»ã¹å¶åŸ¡APIã¡ãœããã®èŠçŽ
æ¹æ³ | æ©èœ |
---|---|
IsECPïŒïŒAsïŒ Bolean | ECPãããã¯ãŒã¯ã§ãã³ãŒããå®è¡ããããã©ããã |
NextProcïŒprocãByRef sc AsïŒ StatusïŒAsïŒ æåå | procèšè¿°åãæã€ããã»ã¹ã®åŸã®æ¬¡ã®ããã»ã¹ã |
DataProcïŒprocãByRef sc AsïŒ
StatusïŒAsïŒ
æŽæ°
| ##ã¯ã©ã¹ïŒUtil.ProcïŒ.DataProcïŒprocïŒã®å Žåãprocèšè¿°åãæã€ããã»ã¹ãååšããŸãã
|
| procèšè¿°åã䜿çšããŠãããã»ã¹ã®Propãšããååã®ããããã£ãååŸããŸãã 次ã®ããããã£ãããŒãªã³ã°ã§ããŸãïŒïŒ
SYS.ProcessQueryã¯ã©ã¹ãåç
§ïŒã
PidãClientNodeNameãUserNameãClientIPAddressãNameSpaceãMemoryUsedãStateãClientExecutableName |
GetProcVarïŒprocãvarãByRef sc AsïŒ
StatusïŒAsïŒ
String
| procèšè¿°åã䜿çšããŠãããã»ã¹ã®varå€æ°ã®å€ãååŸããŸãã
|
KillProcïŒprocãByRef sc AsïŒ
StatusïŒAsïŒ
String
| procèšè¿°åã§ããã»ã¹ãçµäºããŸãã
|
RunJobïŒEntryRefãArgv ...ïŒAsïŒ
ãªã¹ã
| EntryRefãšã³ããªãã€ã³ãããããŒã¿ãµãŒããŒã§ããã»ã¹ãéå§ããå¿
èŠãªæ°ã®å®éã®ãã©ã¡ãŒã¿ãŒïŒArgvïŒãæž¡ããŸãã $ lbïŒïŒ
StatusãpidïŒãè¿ããŸããããã§ãpidã¯ããŒã¿ãµãŒããŒã®ããã»ã¹çªå·ã§ãã
|
CheckJobïŒpidïŒAsïŒ
ãªã¹ã
| ããŒã¿ãµãŒããŒäžã®pidçªå·ã®ããã»ã¹ãåäœããŠãããã©ããã確èªããŸãã
|
CCMïŒClassMethodNameãArgv ...ïŒAsïŒ
æåå
| ããŒã¿ãµãŒããŒã§ClassMethodNameã¯ã©ã¹ïŒãŸãã¯$$-é¢æ°ïŒã®ä»»æã®ã¡ãœãããå®è¡ããå¿
èŠãªæ°ã®å®éã®ãã©ã¡ãŒã¿ãŒïŒArgvïŒãæž¡ããå®è¡çµæãåãåããŸãã
|
ã¡ãœããã®æŠèŠãšããã»ã¹å¶åŸ¡ã®åºæ¬çãªå¿çšããŒãºã®è¡šãæ¯èŒãããšããããã¯ãŒã¯ç°å¢ã§ããããæºè¶³ãããããšãã§ããããšãããããŸãã CCMïŒïŒã¡ãœããã¯åŸã§è¿œå ãããŸããïŒã¢ããªã±ãŒã·ã§ã³ïŒå°åå»çæ å ±ã·ã¹ãã qMSïŒãECPç°å¢ã«è»¢éããããã»ã¹ã§ãããã€ãã®æ©èœãããã¯ããã䟿å©ã§ãããŒã¿ãµãŒããŒäžã§çŽæ¥æ£ããå®è¡ãããããšãå€æããŸããã çç±ã¯ç°ãªãå ŽåããããŸãã
â¢å€§éã®ããŒã¿ãã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã«äžåºŠã ã転éãããããšãé¿ããããšããèŠæãããšãã°ãã¬ããŒããçæãããšããªã©ã
â¢å ±éã®ãªãœãŒã¹ïŒããšãã°ãå¥ã®ã·ã¹ãã ïŒãã®å Žåã¯HealthShareïŒãšã¡ãã»ãŒãžã亀æããããã®ãã¥ãŒïŒãéäžçã«åŠçããå¿ èŠæ§ã
ã»ãšãã©ã®APIã¡ãœããã¯ECPç°å¢ã§åäœããããã«èšèšãããŠããŸãã ECPããªããŠãæ©èœããŸããã127.0.0.1.Port.pidãšãã圢åŒã®ç¡æå³ãªããã»ã¹èšè¿°åã®ã¿ãåãå ¥ã/è¿ããŸãã äŸå€ã¯ãããŒã¿ãµãŒããŒã§åäœããããã«æåãããã¡ãœããã§ããRunJobïŒïŒãCheckJobïŒïŒãCCMïŒïŒããããã¯ãããã»ã¹èšè¿°åïŒprocïŒã§ã¯ãªãããŒã¿ãµãŒããŒäžã®ãã®çªå·ïŒpidïŒãè¿ã/åãå ¥ããããã§ãã ãããã£ãŠããããã®ã¡ãœããã¯ãã¢ããªã±ãŒã·ã§ã³ããã°ã©ããŒã®èŠ³ç¹ããæ±çšåãããŠããŸãããããã®ã€ã³ã¿ãŒãã§ã€ã¹ã¯ãECPç°å¢ãšãã以å€ã®äž¡æ¹ã§åãã§ããããã¡ããç°ãªãæ¹æ³ã§åäœããŸãã
å®è£ ã«ã€ããŠå°ã
ç°ãªããµãŒããŒã§å®è¡ãããŠããããã»ã¹éã®å¯Ÿè©±æ¹æ³ãéžæããå¿ èŠããããŸããã 次ã®éžæè¢ãæ€èšãããŸããã
â¢ã¯ã©ã¹ïŒ SYSTEM.Eventã
oå ¬åŒã«ã¯ãããã¯ãŒã¯äžã§åäœããªãããããã®ãããã¯ãŒã¯æäœã®ãµããŒãã¯ãã€ã§ãã€ã³ã¿ãŒã·ã¹ãã ãºã«ãã£ãŠäžæ¢ãããå¯èœæ§ããããŸãã
â¢ç¬èªã®TCPãµãŒããŒã
oåºæ¬çã«ãè¯ãã¢ã€ãã¢ã§ãã
oè¿œå ã®TCPããŒãïŒã¹ãŒããŒãµãŒããŒããŒããé€ãïŒã䜿çšããå¿ èŠããããŸããããã¯ãå¿ ç¶çã«ãæšæºã®Cachéèšå®ã«å ããŠãè¿œå ã®ã€ã³ã¹ããŒã«ããã³æ§æäœæ¥ãå¿ èŠãšããŸãã ãããŠãæå°éã®èšå®ã§å¯ŸåŠãããã£ãã
â¢WebãµãŒãã¹ã
â¢ClassïŒ Net.RemoteConnectionã å¿ããŠãã人ã®ããã«ïŒãã®ã¯ã©ã¹ã¯ãïŒ Service_Bindingsã¯ã©ã€ã¢ã³ããšåããããã³ã«ã䜿çšããŠãä»ã®ãµãŒããŒã§ãªã¢ãŒãã³ãŒãå®è¡ãæäŸããŸãã ãã®ãµãŒãã¹ãã·ã¹ãã ã§ã¯ã©ã€ã¢ã³ããæ¥ç¶ããããã«ãã§ã«äœ¿çšãããŠããå Žåãè¿œå ã®èšå®ã¯å¿ èŠãããŸãããããã¯ç§ãã¡ã®å Žåã§ãã ããŒã¿äº€æã®ãªãŒããŒãããã¯ãéåžžãWebãµãŒãã¹ã®å Žåããããããã§ãã
ãããã®èæ ®äºé ã«åºã¥ããŠãNet.RemoteConnectionïŒ ãéžæããŸããã ç§ã®æèŠã§ã¯ããã®æ¬ ç¹ã®äžã§æãæ·±å»ãªã®ã¯ã32KBãè¶ ããè¡ãè¿ãããšãèš±å¯ãããŠããªãããšã§ãããããã¯ããã»ã©å€§ããªé害ã«ã¯ãªããŸããã§ããã
ç§ãçŽé¢ããªããã°ãªããªãã£ãããäžã€ã®ããã»ã©é¢çœããªãåé¡ïŒã³ãŒãããããã¯ãŒã¯äžã§åäœããŠãããã©ãããå€æããæ¹æ³ïŒ ãã®è³ªåã«å¯Ÿããçãã¯ãAPIã®å éšããŒãºïŒããã»ã¹èšè¿°åãé©åã«åœ¢æããããïŒãšãã¢ããªã±ãŒã·ã§ã³ããã°ã©ããŒã®éã§éåžžã«äžè¬çãªIsECPïŒïŒã¡ãœããã®èšè¿°ã®äž¡æ¹ã«å¿ èŠã§ãã ãã®äººæ°ã®çç±ã¯éåžžã«æçœã§ãããŠãããŒãµã«APIã®ããã»ã¹éã®çžäºäœçšã«é¢é£ããã³ãŒãã®ã»ã¯ã·ã§ã³ãæžãçŽãããšãã人ã¯ããŸãããŸããã§ããïŒãã®ãããªAPIã¯å®è£ ãããŠããŸããïŒã ECPã®ã³ãŒããã©ã³ããè¿œå ããæ¹ãã¯ããã«ç°¡åã§èªç¶ãªããšãããããŸããã ããããã©ã®ç°å¢ã§ã³ãŒããæ©èœããããå€æããæ¹æ³ã¯ïŒ èæ ®ããããªãã·ã§ã³ïŒ
1.ã¡ã€ã³ãšãªã¢ããŒã¿ããŒã¹ã¯ãªã¢ãŒãã§ãã
- é·æïŒããã¯éåžžã«ç°¡åã§ãïŒ
- çæïŒããã¯ã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã§ã®ã¿åœãŠã¯ãŸããããŒã¿ãµãŒããŒã§ã®ãããã¯ãŒã¯æäœã¯é€å€ãããŸãã
2. 1ãŸãã¯ïŒé åã®ã¡ã€ã³ããŒã¿ããŒã¹ã¯ãªã¢ãŒããšããŠèª°ãã«ãã£ãŠããŠã³ããããŸãïŒã çæïŒ
- é«äŸ¡ã§ãã
- ECPã®åçãªæ§è³ªã®ãããããã¯ä¿¡é Œã§ããŸããã
3. 1ãŸãã¯ïŒãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ã®1ã€ãä»ããŠãã¢ããªã±ãŒã·ã§ã³ãµãŒããŒãããŒã¿ãµãŒããŒã«æ¥ç¶ãããŸãïŒã
ãªãã·ã§ã³3ã§åæ¢ããŸãããããã«ããã質åã«å¯Ÿããåžæããåçãè¿ éãã€æ£ç¢ºã«ååŸã§ããããã§ãã
ã¢ããªã±ãŒã·ã§ã³ãµãŒããŒãšããŒã¿ãµãŒããŒã®äž¡æ¹ã§ããã»ã¹èšè¿°åãå ¥åããŸãã ãã®ãã§ãã¯ãããã«é«éåããããã«ãåãµãŒããŒã®è¯å®çãªçµæã¯ã°ããŒãã«ã«ä¿®æ£ãããŠããŸãã
ããã€ãã®çµè«
ã¯ã©ã¹ãã€ã«ã¹ã¯å°åã®å°åå»çæ å ±ã·ã¹ãã ã®äžéšãšããŠã®ããã»ã¹ç®¡çAPIã®å®è£ ã®æåã«ãããå®å šã§ã¯ãªãã«ããŠããå°ãªããšãéžæããã¢ãããŒãã®å®è¡å¯èœæ§ã瀺ãããŸããã ãã®APIã䜿çšããŠãåœç€Ÿã®ã¹ãã·ã£ãªã¹ãã¯ããã€ãã®éèŠãªåé¡ã解決ããŸããã ãããã®ã»ãã®äžéšããªã¹ãããŸãã
â¢éè€ãããŠãŒã¶ãŒå ¥åã®æé€ã
â¢ãããã¯ãŒã¯å šäœã®äœæ¥ãŠãŒã¶ãŒã®ãªã¹ããååŸããŸãã
â¢ãŠãŒã¶ãŒéã®ã¡ãã»ãŒãžã³ã°ã
â¢å®éšå®€ã®åæè£ çœ®ã«ãµãŒãã¹ãæäŸããããã¯ã°ã©ãŠã³ãããã»ã¹ã®èµ·åãšå¶åŸ¡ã
çµè«ãšããŠãã³ãŒãã®ãã¹ããæ°ã¥ãããã°ãžã®è¿ éãªå¯Ÿå¿ãç¹ã«ãããã®äžéšã®ä¿®æ£ã«ã€ããŠã SP.ARMã®ååã«æè¬ããŸãã Util.Procã¯ã©ã¹ã®ã¡ãœããã®äžéšïŒCCMïŒïŒãRunJobïŒïŒãCheckJobïŒïŒïŒã¯ãã¢ããªã±ãŒã·ã§ã³ãœãããŠã§ã¢ããç¬ç«ããŠäœæãããŸããã ãããã¯githubãªããžããªãŸãã¯InterSystemsãŠãŒã¶ãŒã³ãŒãããŒã¹ããããŠã³ããŒãã§ããŸãã
ã¯ããç§ã¯ã€ã³ã¿ãŒã·ã¹ãã ãºã®åŸæ¥å¡ã§ã¯ãããŸãããããã®äŒç€Ÿã®æè¡ãåãã§äœ¿çšããŠããŸãããããæ£è ã®èªè ã«ãèªãã§ããããããšæããŸãã