ࡱ> M 'bjbj== GhWW "l $ zzzPd. n4 """"k#m&Y'x}$l  'g#k#''50 ""505050' " "}50'}50506N u# !" KU볁 z, }!\΁0}dB}/B!50 nhShowElementInfo Design Specification Create Date:  CREATEDATE \@ "MMMM d yyyy" \* MERGEFORMAT October 31 2002 Last Modified Date:  DATE \@ "MMMM d yyyy" \* MERGEFORMAT October 31 2002 Version  DOCPROPERTY "Version" \* MERGEFORMAT 1.0 Prepared By: Joe W. Kuefler AUTHOR\* Caps \* MERGEFORMAT  AUTHOR\* Caps \* MERGEFORMAT  Copyright  DATE \@ "yyyy" \* MERGEFORMAT 2002 Concord Communications, Inc. 600 Nickerson Rd. Marlborough, MA 01752 All Rights Reserved Legal Copyright  DATE \@ "yyyy" \* MERGEFORMAT 2002 Concord Communications, Inc. All rights reserved. The information provided in this document is the proprietary and confidential information of Concord Communications, Inc. (Concord). You may use this information solely for your internal evaluation as requested by Concord. This information is subject to change at any time without notice, and Concord makes no representation, warranty or covenant regarding this information or any software or other products related thereto. Revision History DateAuthorComments CREATEDATE \@ "M/d/yyyy" \* MERGEFORMAT 10/31/2002Joe KueflerVersion 1.0Related Documents  HYPERLINK "http://janeway.concord.com/CS/sol/23597/NH_MANAGE_STAT_DUPS.html" http://janeway.concord.com/CS/sol/23597/NH_MANAGE_STAT_DUPS.html DB_56_func_nhShowElementInfo.doc -- Functional Specification  TOC \o "1-3" \h \z   HYPERLINK \l "_Toc23838988" nhShowElementInfo  PAGEREF _Toc23838988 \h 1  HYPERLINK \l "_Toc23838989" Design Specification  PAGEREF _Toc23838989 \h 1  HYPERLINK \l "_Toc23838990" Version 1.0  PAGEREF _Toc23838990 \h 1  HYPERLINK \l "_Toc23838991" Prepared By:  PAGEREF _Toc23838991 \h 1  HYPERLINK \l "_Toc23838992" Joe W. Kuefler  PAGEREF _Toc23838992 \h 1  HYPERLINK \l "_Toc23838993" Legal  PAGEREF _Toc23838993 \h 3  HYPERLINK \l "_Toc23838994" Revision History  PAGEREF _Toc23838994 \h 3  HYPERLINK \l "_Toc23838995" Related Documents  PAGEREF _Toc23838995 \h 3  HYPERLINK \l "_Toc23838996" 1 Introduction  PAGEREF _Toc23838996 \h 5  HYPERLINK \l "_Toc23838997" 1.1 Intended Audience  PAGEREF _Toc23838997 \h 5  HYPERLINK \l "_Toc23838998" 1.2 Glossary of Terms  PAGEREF _Toc23838998 \h 5  HYPERLINK \l "_Toc23838999" 2 Solution Overview  PAGEREF _Toc23838999 \h 6  HYPERLINK \l "_Toc23839000" 2.1 Where Should it Go?  PAGEREF _Toc23839000 \h 6  HYPERLINK \l "_Toc23839001" 2.2 APIs  PAGEREF _Toc23839001 \h 6  HYPERLINK \l "_Toc23839002" 2.3 Error Handling and Logging Approach  PAGEREF _Toc23839002 \h 7  HYPERLINK \l "_Toc23839003" 2.4 Testing Approach  PAGEREF _Toc23839003 \h 7  HYPERLINK \l "_Toc23839004" 3 Design Details  PAGEREF _Toc23839004 \h 8  HYPERLINK \l "_Toc23839005" 4 CM Changes  PAGEREF _Toc23839005 \h 9  Introduction Reporting tool for Poller Team, SWAT Team and DB Team to research poller data in the STATS tables. Intended Audience The audience for this document includes : Technical Support to direct customers to run this reporting utility. Poller Team to understand the output and help refine their needs. SWAT Team to avoid having to request large dumps of STATS data. Database Team who usually deal with STATS data problems, since they are typically data-integrity related. Glossary of Terms TermDefinition$NH_MANAGE_STAT_DUPSNew feature that insulates customers from duplicate stats data by creating non-unique indexes where our rollup (or indexing) jobs would normally have failed. This feature leverages the same CDB libraries extensions that make nhShowElementInfo possible. Thus, nhShowElementInfo can be used to validate the reporting aspects of $NH_MANAGE_STAT_DUPS.nhiIndexStatseHealth jobs that creates indexes on the NH_STATS0 sushi table that hold raw poller datanhiRollupDbeHealth jobs that rolls NH_STATS data into higher numbered NH_STATS tables. Solution Overview The nhShowElementInfo program performs ONLY QUERIES of the eHealth database. It should be designed to work against Ingres and Oracle and against all currently supported versions of eHealth. Where Should it Go? If this matrix is wrong, synchronize it with PM or our product literature: NhVerSol2.7Sol2.8HP11-32HP11-64WinNTWin2K4.80X-X-X-5.02X-X-X-5.50X-X-X-5.60-XXXXXAPIs The nhShowElementInfo program is a thin layer over several CDB APIs designed originally for the $NH_MANAGE_STAT_DUPS feature: The entry point from $NH_MANAGE_STAT_DUPS which creates the report into a log file as $NH_HOME/log/STAT_DUPS.nnnnnnnnnn (not called by nhShowElementInfo, but shown here as an FYI): void cdbStatForensics ( DuDatabase* pdb, // open database connection int iFailureBits, // see cdbStatForensics.H unsigned int iTableTime, // sushi extension on table where indexes failed RWCString& strTableName // full tablename where indexes failed ); These three APIs called by nhShowElementInfo: // dumps poller config data (as stored in database) to fp (which is stdout for nhShowElementInfo ): void cdbStatForensicsElementInfo ( DuDatabase* pdb, // open database connection FILE* fp, // open file (or stdout) unsigned int iElementId // desired ElementId (must exist in DB) ); // dumps poller STATS data (as stored in database) to fp (which is stdout for nhShowElementInfo ): void cdbStatForensicsElement ( DuDatabase* pdb, // open database connection FILE* fp, // open file (or stdout) unsigned int iElementId, // desired ElementId (must exist in DB) unsigned int iCenterPoint, // timestamp to center the report on RWCString* StatsTables, // array of STATS tables int iNumStatsTables, // number of tables in the array int iWindowSeconds, // defaults to MSD_WINDOW_SECONDS (currently 30 min) ); // dumps the report key so that abbreviations are understood: void cdbStatForensicsStatsKey ( FILE* fp // open file (or stdout) ); Error Handling and Logging Approach Advanced debugging can be enabled as follows: -Dm cdb:du Df D -- will enable cdb and du debugging (the bulk of it) -Dm dbu Df D -- will enable nhShowElementInfo debugging (arg parsing, etc.) Testing Approach Sanity check of this report should be done with each major release, to make sure that it does not core dump and to make sure it produces intelligible output. Beyond that, no testing is really needed. Design Details Key queries (code excerpts) are shown here. Note that this feature only queries the database and formats its output with standard routines. Query to fetch stats data (once a STATS table has been determined to be reportable): sprintf (szQuery, "select element_id" NL " , sample_time" NL " , delta_time" NL " , good_polls" NL " , missed_polls" NL " , bad_polls" NL " , reboots" NL " , total_time" NL " , available_time" NL " , reachable_time" NL " , latency" NL " , dll_frames" NL " , dll_bytes" NL " from %s", pszTablename); if (duIsColumnIndexed (pszTablename, "element_id")) { fprintf (fp, ":: table %25s => we'll query by element_id (indexed)...\n", strTableUpper.data()); sprintf (szQuery+strlen(szQuery), NL " where element_id = %lu" NL " and sample_time between %lu and %lu" NL " order by sample_time", pszTablename, (Uint32)WindowStart.asTime_t(), (Uint32)WindowEnd.asTime_t()); } else if (duIsColumnIndexed (pszTablename, "sample_time")) { fprintf (fp, ":: table %25s => we'll query by sample_time (indexed)...\n", strTableUpper.data()); fprintf (fp, ":: sample_time is indexed (we'll use it)\n"); sprintf (szQuery+strlen(szQuery), NL " where sample_time between %lu and %lu" NL " and element_id = %lu" NL " order by sample_time", pszTablename, (Uint32)WindowStart.asTime_t(), (Uint32)WindowEnd.asTime_t()); } else { // full tablescan: use my own code to filter... // query is all set: no WHERE clause or ORDER BY fprintf (fp, ":: table %25s => we will scan it (table NOT indexed)...\n", strTableUpper.data()); } CM Changes Underlying CDB code: /vobs/wsCore/cdbLib/Imakefile /vobs/wsCore/cdbLib/cdbStatForensics.pc/sc /vobs/wsCore/cdbLib/cdbStatForensics.H Utility code: /vobs/wsCore/dbUtils/Imakefile /vobs/wsCore/dbUtils/nhShowElementInfo.pc/sc  TIME \@ "MMMM d, yyyy" October 31, 2002 nhShowElementInfo Design Spec  TIME \@ "MMMM d, yyyy" October 31, 2002 Concord Company Confidential  PAGE \* Arabic \* MERGEFORMAT 30 of  NUMPAGES \* Arabic \* MERGEFORMAT 9  TIME \@ "MMMM d, yyyy" October 31, 2002 Concord Company Confidential  PAGE \* Arabic \* MERGEFORMAT 30 of  NUMPAGES \* Arabic \* MERGEFORMAT 9 (56detu79WXef #$MNXY  X Y m n o p q λȟ0J*mHnHuj0J*UmHnHu 5:;j5:;U0J*jU>* mHnHu jU CJOJQJCJOJQJmHnHujCJOJQJUmH sH CJOJQJmH sH ;'(v YQ " $If^ `$If$a$ &'"#Zfrs V W o  b @" ! ! ! "  !  & FN$IfX$$IflFjR  t    4 laq          3 4 ƾЗyk_:CJaJmHnHujUmHnHu0J*aJ mHnHu&jo>*B*UmHnHphu5;CJaJmHnHujUmHnHujUmHnHumHnHu0J*aJ(mHnHuj0J*UmHnHu&jy>*B*UmHnHphu0J*mHnHu mHnHu"4 5 6 A B C \ ] ^ _ ` a b c d  ͳߧߟwߧߟcߟ&jQ>*B*UmHnHphujUmHnHu&j[>*B*UmHnHphu mHnHu0J*mHnHu:CJaJmHnHujUmHnHujUmHnHumHnHu0J*aJmHnHuj0J*UmHnHu&je>*B*UmHnHphu&     # $ % > ? @ A B C D E F a b c d t u v ѽљދ~ѽjљ\jUmHnHu&j=>*B*UmHnHphu5;CJaJmHnHujUmHnHu0J*aJmHnHu&jG>*B*UmHnHphu mHnHu0J*mHnHu:CJaJmHnHuj0J*UmHnHumHnHujUmHnHujUmHnHu$ D 6 6 ?24A(l- & FP^"  ! ! ! ! !          0 1 2 3 4 5 6 7 8 S T 󺲦ބ溲vj UmHnHu&j) >*B*UmHnHphujUmHnHujUmHnHumHnHu0J*aJmHnHu&j3>*B*UmHnHphu mHnHu0J*mHnHu5;CJaJmHnHuj0J*UmHnHu(T U V Y Z k l m   ÷é÷ף׏÷Á÷ףm&j >*B*UmHnHphuj UmHnHu&j >*B*UmHnHphu mHnHuj UmHnHujUmHnHumHnHu:CJaJmHnHu0J*mHnHuj0J*UmHnHu&j >*B*UmHnHphu&      0 1 2 3 4 5 6 7 8 S T U V Y Z m n o ҷ淯qҷ]&j >*B*UmHnHphuj| UmHnHu:CJaJmHnHu0J*mHnHsH u&j >*B*UmHnHphu mHnHu0J*mHnHuj0J*UmHnHuj UmHnHujUmHnHumHnHu5;CJaJmHnHu0J*aJmHnHsH u$  9:;<=>?@A\]^_bcstuպ麲պ麲v&j>*B*UmHnHphujhUmHnHu&j>*B*UmHnHphu mHnHu0J*mHnHuj0J*UmHnHujrUmHnHujUmHnHumHnHu:CJaJmHnHu0J*mHnHsH u*,ѽї|ъѽhї&j>*B*UmHnHphujTUmHnHu5;CJaJmHnHu0J*aJmHnHsH u&j>*B*UmHnHphu mHnHu0J*mHnHu:CJaJmHnHuj0J*UmHnHumHnHujUmHnHuj^UmHnHu$,-./0123.>8I[l{} 3D'7Hfkĺ{nCJOJQJ^JmH sH 6]mH sH ;\mH sH 5\mH sH KH\mH nH sH u56\]mH sH mH sH  56\]5hj5:;U5;CJaJmHnHuj0J*UmHnHumHnHujUmHnHujJUmHnHu%-.3>?T+wxyzd i$$Ifl0,"LL04 la$If@^@z{|}Ocd| $$Ifa$$Ifi$$Ifl0,"LL04 la,H$$Ifl֞v gXI:,"064 la $$Ifa$ $$Ifa$ !$$Ifa$5H( $$Ifa$ !$$Ifa$$$Ifl֞v gXI:,"064 la $$Ifa$  5H,,, $$Ifa$$$Ifl֞v gXI:,"064 la $$Ifa$ 5H,,, $$Ifa$$$Ifl֞v gXI:,"064 la "$&( $$Ifa$()./53111$$Ifl֞v gXI:,"064 laef&ehi!Pu ?nK \ ^ \ k{h  %</Y,L]%%#%8%%%&& & &#&$&4&5&W&X&p&q&&&&&&&&&&&&&&&&&''' '޸ mHnHu jUOJQJ^JmH sH 5\mH sH $56CJOJQJ\]^JmH sH 56\]mH sH mH sH CJOJQJ^JmH sH 5CJOJQJ\^JmH sH @2UYZ[L]'63Vz'Jq \ q% & b l !7!s!!!5"?"""&#b##$$$&$b$$ %%%!%"%#%8%V%%%%%%&&&&&& & &T&U&&&&&!'"'' &dP '@'A'`'a'c'd'h'i'''''' mHnHu jU '''' &P/ =!"#$%# 0&P/ =!"#$%yDyK Ahttp://janeway.concord.com/CS/sol/23597/NH_MANAGE_STAT_DUPS.htmlyK http://janeway.concord.com/CS/sol/23597/NH_MANAGE_STAT_DUPS.html{DyK  _Toc23838988{DyK  _Toc23838988{DyK  _Toc23838989{DyK  _Toc23838989{DyK  _Toc23838990{DyK  _Toc23838990{DyK  _Toc23838991{DyK  _Toc23838991{DyK  _Toc23838992{DyK  _Toc23838992{DyK  _Toc23838993{DyK  _Toc23838993{DyK  _Toc23838994{DyK  _Toc23838994{DyK  _Toc23838995{DyK  _Toc23838995{DyK  _Toc23838996{DyK  _Toc23838996{DyK  _Toc23838997{DyK  _Toc23838997{DyK  _Toc23838998{DyK  _Toc23838998{DyK  _Toc23838999{DyK  _Toc23838999{DyK  _Toc23839000{DyK  _Toc23839000{DyK  _Toc23839001{DyK  _Toc23839001{DyK  _Toc23839002{DyK  _Toc23839002{DyK  _Toc23839003{DyK  _Toc23839003{DyK  _Toc23839004{DyK  _Toc23839004{DyK  _Toc23839005{DyK  _Toc23839005. i0@0 Normal_HmH sH tH X@X Heading 1 $$ & F<&d@&5CJKHOJQJN@N Heading 2$ & F<@&56CJOJQJH@H Heading 3$ & F<@& CJOJQJL@L Heading 4$ & F<@&5CJOJQJ<@< Heading 5 & F<@&CJ@@@ Heading 6 & F<@&6CJ@@@ Heading 7 & F<@&OJQJD@D Heading 8 & F<@& 6OJQJJ @J Heading 9 & F<@&56CJOJQJ<A@< Default Paragraph Font*B@* Body Textx21@2 List Number  & F66@6 List Bullet 2  & F67@"6 List Bullet 3  & F20@22 List Bullet  & FD>@BD Title$@ <@&a$5CJ(KHOJQJ>J@R> Subtitle$<@&a$ CJ OJQJBOQbB Title Text5CJKHmHnHu:Oar: Title Subtextx5CJBOB Copyright $a$5KHmHnHuDOD Heading$x@&5CJKHOJQJ$X@$ Emphasis64"@4 Caption$xxa$50Z@0 Plain TextOJQJ<@< Header$d&d !5&)@& Page Number> @> Footer$d ! 5OJQJ2O2 First Header &d,`, TOC 1 !xx5;*`* TOC 2 "^:*`* TOC 3 #^6*`* TOC 4 $X^XCJ*`* TOC 5 % ^ CJ*`* TOC 6 &^CJ*`* TOC 7 '^CJ*`* TOC 8 (x^xCJ*`* TOC 9 )@^@CJ(U@( Hyperlink>*B*8V@8 FollowedHyperlink>*B* @R@@ Body Text Indent 2 ,^8O8 H2-$dd@&5CJ$htH u# h! "h!'(v YQ "#ZfrsVWobD66 ? 2 4 A ( l   - . 3 > ? T +wxyz{|}Ocd   "$&()./ef&ehi!Pu ?nK2UYZ[L]'63Vz'Jq%&bl 7s5?&b   & b !!!!"!#!8!V!!!!!!"""""" "#0000'0000000`00000000000000N 0sN 0s0s"0s!0"0"0"0"0!0!0!0!0"0"0!0"0"0"0"0!0!0"0s 004  04 4 0 0 P 0 P 0 P 0 P 0 0  04 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0  00}0} 0}}0O0O0O0O0O0O0O0O0O0O0O!0O0O0O0O0O0O0O0O!0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O0O 0}}0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0) 0}}0[0[0[ 0}}0L 00'0'0'0'0'0'0'0'0'0'0'0'0'0'0'0'0'0'0'0'0'0'0'0'0'0'0'0'0'0'0'0'0'0'0'0'0'0'0'0'0'0' 0000000000 00000000KKKKzq 4 T  ,k '' !.2" -z (q%''"#$%&'()*+,-/013'5dt78We#MXXmo5B]_`b$?ABDcu1346Ul  1 3 4 6 U n  : < = ? ^ t   - / 0 2 #UtX X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%X%̕*Mfw6VY^  ! !8@0(  B S  ?# _Toc23838988 _Toc23838989 _Toc465587485 _Toc23838990 _Toc465587486 _Toc23838991 _Toc23838992 _Toc465587488 _Toc23838993 _Toc23838994 _Toc465587489 _Toc23838995 _Toc465587491 _Toc23838996 _Toc23838997 _Toc23838998 _Toc11836007 _Toc23838999 _Toc23839000 _Toc11836009 _Toc23839001 _Toc11836010 _Toc23839002 _Toc11836011 _Toc23839003 _Toc11836012 _Toc23839004 _Toc11836018 _Toc23839005 ssX4  }}O))[[LL''!!# &    @ @ , b,-~~\\55 ! !#8I[l3D'7Hk{&/1=FO.1WYms %<LOuw "$/P_/9;MS,9<*1ju;E^l"2CEQx02OZdfln#&1KRTVy  >ISU[] : C !j!}!!!!!!" "6"G"## *+2U[fjv~ $LO!(@Fbi3:V]} .0x!KNKR8=vy  5 9 q v !! "##3333333333333333333333333333333333333333333333333333333  = t  0 " "5"6"S"W""""""""" #@#d#h###Joseph Kuefler2U:\jkuefler\doc\DB_56_design_nhShowElementInfo.docJoseph KueflerrC:\WINNT\Profiles\jkuefler\Application Data\Microsoft\Word\AutoRecovery save of DB_56_design_nhShowElementInfo.asdJoseph KueflerrC:\WINNT\Profiles\jkuefler\Application Data\Microsoft\Word\AutoRecovery save of DB_56_design_nhShowElementInfo.asdJoseph KueflerrC:\WINNT\Profiles\jkuefler\Application Data\Microsoft\Word\AutoRecovery save of DB_56_design_nhShowElementInfo.asdJoseph KueflerrC:\WINNT\Profiles\jkuefler\Application Data\Microsoft\Word\AutoRecovery save of DB_56_design_nhShowElementInfo.asdJoseph KueflerrC:\WINNT\Profiles\jkuefler\Application Data\Microsoft\Word\AutoRecovery save of DB_56_design_nhShowElementInfo.asdJoseph KueflerrC:\WINNT\Profiles\jkuefler\Application Data\Microsoft\Word\AutoRecovery save of DB_56_design_nhShowElementInfo.asdU|\%}R~ƺj3qβ":/KD{?K6 x &;p&-Ai;xy2ZOL X~5  o\afRWX~="Zp&-8+6XRf<?X~ hR2  8D!=8! 7B"X~?#p&-p(p&-)p&-s*p&-I+T .6v{M.~>E-0p&-s1TDSn1p&-*3>J5 Mp88 {8 NW> ?p&-ZsA (fBH B55(BX~b<C4[;Df?"SF 52,H^o(I&kuOp&-{<|Q PQLl$%fT LyU KV 4RzqyVٶGiYlZhBa N[>u*\ڊ`2]p&-418_ڊ`ap&-wbf-d "d  ? T +wxyz{c   "$&() " ""##@@{#@UnknownGz Times New Roman5Symbol3& z Arial?5 z Courier New;" Helvetica;Wingdings#qhZjc kj ;1Vh!20dw"v2QU:\jkuefler\doc\DesignSpec.dotTitleSubjectJoseph KueflerJoseph KueflerOh+'0  (4 P \ h tTitlefSubjectJoseph KuefleroseoseDesignSpec.dotJoseph Kuefler10eMicrosoft Word 9.0@ur@e@,3 @h۳GP VT$m( 5&WordMicrosoft Word  System    -Y@"Arialf Uwwgwf U - %2 nhShowElementInfoffofco-\]f8.f8f 2   0\{@"ArialY wwgwY -)2 Design Specification`JCJJ%YJJC%CI%JJ 2 R  G 2   G@"Arial0 wwgw0  -2 G W Create Date: H!888H88"2 G October 31 2002N1878!887888 2 G  05)2 Last Modified Date: 882S7888G88"2 > October 31 2002N1888!888878 2 '  05@"Arial0 Twwgw0 T -2 W Version HA.@!GG!2 W 1.0@!A 2 W *  @ 2 "  A 2   A2 PreN.A2 J pared By:D@.AG!U>' 2 _  B- 2 Joe W. Kuefler288bB878! 2 >  5@Times New Romanwgw -2 D Copyright <*.*%*.>2 D 2002**)* 2 D4  J52 Concord Communications, Inc.<*.%*%.<+ED./%**. !.% 2 $  K%2 600 Nickerson Rd.***<%-%% *.<. 2 =  L+2 c8Marlborough, MA 01752O*%.*%*.*.P<)**)* 2 c  J 2   K(2 #All Rights Reserved5<<*. <% %%*%. 2 #W  .-                    oc1960268՜.+,D՜.+,( px  ManagerConcord Communications;w" TitlenhShowElementInfo Design Specification  Version 1.0   Prepared By: Joe W. KueflerLegalRevision HistoryRelated Documents Introduction Intended Audience Glossary of TermsSolution Overview Where Should it Go? APIs( Error Handling and Logging Approach Testing ApproachDesign Details CM Changes Title Headings(PX _PID_HLINKSVersionA\r3 _Toc238390053{ _Toc238390043u _Toc238390033o _Toc238390023i _Toc238390013c _Toc23839000;] _Toc23838999;W _Toc23838998;Q _Toc23838997;K _Toc23838996;E _Toc23838995;? _Toc23838994;9 _Toc23838993;3 _Toc23838992;- _Toc23838991;' _Toc23838990:! _Toc23838989: _Toc23838988qAhttp://janeway.concord.com/CS/sol/23597/NH_MANAGE_STAT_DUPS.html1.0  !"#$%&'()*+,-./012346789:;<=>@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Root Entry FYX볁Data 51Table?BWordDocumentGhSummaryInformation(DocumentSummaryInformation8CompObjjObjectPoolYX볁YX볁  FMicrosoft Word Document MSWordDocWord.Document.89q