From do-not-reply at jboss.org Wed Mar 31 12:47:35 2010 Content-Type: multipart/mixed; boundary="===============7161531426508718359==" MIME-Version: 1.0 From: do-not-reply at jboss.org To: hornetq-commits at lists.jboss.org Subject: [hornetq-commits] JBoss hornetq SVN: r9034 - branches/HnetQ_323_cn/docs/user-manual/zh. Date: Wed, 31 Mar 2010 12:47:34 -0400 Message-ID: <201003311647.o2VGlYbg029245@svn01.web.mwc.hst.phx2.redhat.com> --===============7161531426508718359== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Author: gaohoward Date: 2010-03-31 12:47:34 -0400 (Wed, 31 Mar 2010) New Revision: 9034 Modified: branches/HnetQ_323_cn/docs/user-manual/zh/persistence.xml Log: another chapter Modified: branches/HnetQ_323_cn/docs/user-manual/zh/persistence.xml =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- branches/HnetQ_323_cn/docs/user-manual/zh/persistence.xml 2010-03-31 16= :04:11 UTC (rev 9033) +++ branches/HnetQ_323_cn/docs/user-manual/zh/persistence.xml 2010-03-31 16= :47:34 UTC (rev 9034) @@ -17,273 +17,195 @@ - Persistence - In this chapter we will describe how persistence works with Horn= etQ and how to configure - it. - HornetQ ships with a high performance journal. Since HornetQ han= dles its own persistence, - rather than relying on a database or other 3rd party persistence e= ngine it is very highly - optimised for the specific messaging use cases. - A HornetQ journal is an append only journal= . It consists of a set of - files on disk. Each file is pre-created to a fixed size and initia= lly filled with padding. - As operations are performed on the server, e.g. add message, updat= e message, delete message, - records are appended to the journal. When one journal file is full= we move to the next - one. - Because records are only appended, i.e. added to the end of the = journal we minimise disk - head movement, i.e. we minimise random access operations which is = typically the slowest - operation on a disk. - Making the file size configurable means that an optimal size can= be chosen, i.e. making - each file fit on a disk cylinder. Modern disk topologies are compl= ex and we are not in - control over which cylinder(s) the file is mapped onto so this is = not an exact science. But - by minimising the number of disk cylinders the file is using, we c= an minimise the amount of - disk head movement, since an entire disk cylinder is accessible si= mply by the disk rotating - - the head does not have to move. - As delete records are added to the journal, HornetQ has a sophis= ticated file garbage - collection algorithm which can determine if a particular journal f= ile is needed any more - - i.e. has all it's data been deleted in the same or other files. If= so, the file can be - reclaimed and re-used. - HornetQ also has a compaction algorithm which removes dead space= from the journal and - compresses up the data so it takes up less files on disk. - The journal also fully supports transactional operation if requi= red, supporting both local - and XA transactions. - The majority of the journal is written in Java, however we abstr= act out the interaction - with the actual file system to allow different pluggable implement= ations. HornetQ ships with - two implementations: + =E6=8C=81=E4=B9=85=E5=8C=96 + =E6=9C=AC=E7=AB=A0=E6=88=91=E4=BB=AC=E5=B0=86=E6=8F=8F=E8=BF=B0H= ornetQ=E7=9A=84=E6=8C=81=E4=B9=85=E5=8C=96=E6=8A=80=E6=9C=AF=EF=BC=8C=E5=8C= =85=E6=8B=AC=E6=8C=81=E4=B9=85=E5=8C=96=E7=9A=84=E5=B7=A5=E4=BD=9C=E5=8E=9F= =E7=90=86=E5=92=8C=E9=85=8D=E7=BD=AE=E6=96=B9=E6=B3=95=E3=80=82 + HornetQ=E6=8B=A5=E6=9C=89=E4=B8=80=E4=B8=AA=E9=AB=98=E6=80=A7=E8= =83=BD=E7=9A=84=E6=97=A5=E5=BF=97=EF=BC=88journal=EF=BC=89=E6=A8=A1=E5=9D= =97=E6=9D=A5=E5=A4=84=E7=90=86=E6=8C=81=E4=B9=85=E5=8C=96=E3=80=82=E5=9B=A0= =E6=AD=A4=E5=AE=83=E5=B9=B6=E4=B8=8D=E4=BE=9D=E8=B5=96=E4=B8=80=E4=B8=AA=E5= =A4=96=E9=83=A8=E7=9A=84=E6=95=B0=E6=8D=AE=E5=BA=93=E6=88=96=E7=AC=AC=E4=B8= =89=E6=96=B9=E6=8C=81=E4=B9=85=E5=8C=96=E4=BA=A7=E5=93=81=E3=80=82=E8=BF=99= =E4=B8=AA + =E6=97=A5=E5=BF=97=E6=A8=A1=E5=9D=97=E9=92=88=E5=AF=B9=E6=B6=88=E6= =81=AF=E7=9A=84=E5=A4=84=E7=90=86=E8=BF=9B=E8=A1=8C=E4=BA=86=E9=AB=98=E5=BA= =A6=E7=9A=84=E4=BC=98=E5=8C=96=E3=80=82 + =E6=89=80=E8=B0=93HornetQ=E6=97=A5=E5=BF=97=E6=98=AF=E4=B8=80=E4= =B8=AA=E5=8F=AA=E6=B7=BB=E5=8A=A0=E7=B3=BB=E7=BB=9F=E3= =80=82=E5=AE=83=E7=94=B1=E4=B8=80=E7=BB=84=E7=A3=81=E7=9B=98=E6=96=87=E4=BB= =B6=E6=9E=84=E6=88=90=E3=80=82=E6=AF=8F=E4=B8=AA=E6=96=87=E4=BB=B6=E9=83=BD= =E6=98=AF=E9=A2=84=E5=85=88=E5=88=9B=E5=BB=BA=E5=A5=BD=E7=9A=84=E5=B9=B6=E4= =B8=94 + =E5=A4=A7=E5=B0=8F=E6=98=AF=E5=9B=BA=E5=AE=9A=E7=9A=84=E3=80=82=E6= =96=87=E4=BB=B6=E5=9C=A8=E5=88=9B=E5=BB=BA=E6=97=B6=E9=83=BD=E8=BF=9B=E8=A1= =8C=E4=BA=86=E6=A0=BC=E5=BC=8F=E5=8C=96=E3=80=82=E9=9A=8F=E7=9D=80HornetQ= =E4=B8=8D=E6=96=AD=E5=9C=B0=E5=A4=84=E7=90=86=E6=B6=88=E6=81=AF=EF=BC=8C=E5= =A6=82=E6=B6=88=E6=81=AF=E7=9A=84=E5=A2=9E=E5=8A=A0=E3=80=81=E6=9B=B4=E6=96= =B0=E3=80=81=E5=88=A0=E9=99=A4=E7=AD=89=EF=BC=8C=E4=B8=80=E4=B8=AA=E4=B8=AA= =E8=AE=B0=E5=BD=95=E8=A2=AB=E6=B7=BB=E5=8A=A0 + =E5=88=B0=E6=97=A5=E5=BF=97=E4=B8=AD=E3=80=82=E5=BD=93=E4=B8=80=E4= =B8=AA=E6=97=A5=E5=BF=97=E6=96=87=E4=BB=B6=E5=86=99=E6=BB=A1=E6=97=B6=EF=BC= =8C=E6=96=B0=E8=AE=B0=E5=BD=95=E5=B0=B1=E4=BC=9A=E5=86=99=E5=88=B0=E4=B8=8B= =E4=B8=80=E4=B8=AA=E6=96=87=E4=BB=B6=E3=80=82 + =E7=94=B1=E4=BA=8E=E5=AF=B9=E6=97=A5=E5=BF=97=E7=9A=84=E5=86=99= =E5=85=A5=E5=8F=AA=E6=98=AF=E5=AF=B9=E6=96=87=E4=BB=B6=E7=9A=84=E6=B7=BB=E5= =8A=A0=EF=BC=8C=E8=BF=99=E6=A0=B7=E6=9C=89=E6=95=88=E5=87=8F=E5=B0=91=E4=BA= =86=E9=9A=8F=E6=9C=BA=E5=AF=BB=E9=81=93=E7=9A=84=E6=93=8D=E4=BD=9C=E3=80=82= =E8=80=8C=E9=9A=8F=E6=9C=BA=E5=AF=BB=E9=81=93=E7=9A=84=E6=93=8D=E4=BD=9C=E6= =98=AF=E7=A3=81=E7=9B=98=E6=93=8D=E4=BD=9C=E4=B8=AD=E6=9C=80=E8=80=97=E6=97= =B6=E7=9A=84=E6=93=8D=E4=BD=9C=E3=80=82 + =E6=89=80=E4=BB=A5=E8=BF=99=E7=A7=8D=E8=AE=BE=E8=AE=A1=E5=8F=AF=E4= =BB=A5=E4=BD=BF=E7=A3=81=E5=A4=B4=E7=9A=84=E8=BF=90=E5=8A=A8=E9=99=8D=E5=88= =B0=E6=9C=80=E4=BD=8E=EF=BC=8C=E6=95=88=E7=8E=87=E6=9C=80=E9=AB=98=E3=80=82= + =E8=80=8C=E6=96=87=E4=BB=B6=E7=9A=84=E5=A4=A7=E5=B0=8F=E6=98=AF= =E5=8F=AF=E4=BB=A5=E9=85=8D=E7=BD=AE=E7=9A=84=E3=80=82=E8=BF=99=E4=BD=BF=E6= =88=91=E4=BB=AC=E5=8F=AF=E4=BB=A5=E5=B0=86=E6=96=87=E4=BB=B6=E5=A4=A7=E5=B0= =8F=E9=85=8D=E7=BD=AE=E4=B8=BA=E5=88=9A=E5=A5=BD=E5=8D=A0=E6=BB=A1=E4=B8=80= =E4=B8=AA=E7=A3=81=E7=9B=98=E6=9F=B1=E9=9D=A2=E3=80=82=E4=B8=8D=E8=BF=87=E7= =8E=B0=E4=BB=A3=E7=9A=84=E7=A3=81=E7=9B=98=E6=8A=80=E6=9C=AF=E6=98=AF=E5=A4= =8D=E6=9D=82=E5=A4=9A=E6=A0=B7=E7=9A=84=EF=BC=8C + =E6=88=91=E4=BB=AC=E5=B9=B6=E4=B8=8D=E8=83=BD=E6=8E=A7=E5=88=B6=E6= =96=87=E4=BB=B6=E4=B8=8E=E7=A3=81=E7=9B=98=E6=9F=B1=E9=9D=A2=E7=9A=84=E5=AF= =B9=E5=BA=94=E5=85=B3=E7=B3=BB=E3=80=82=E5=B0=BD=E7=AE=A1=E5=A6=82=E6=AD=A4= =EF=BC=8C=E6=88=91=E4=BB=AC=E9=80=9A=E8=BF=87=E6=9C=80=E5=A4=A7=E9=99=90=E5= =BA=A6=E5=9C=B0=E9=99=8D=E4=BD=8E=E6=96=87=E4=BB=B6=E5=AF=B9=E7=A3=81=E7=9B= =98=E6=9F=B1=E9=9D=A2=E7=9A=84=E5=8D=A0=E7=94=A8=EF=BC=8C=E6=9D=A5=E9=99=8D= =E4=BD=8E=E7=A3=81=E5=A4=B4=E7=9A=84=E8=BF=90=E5=8A=A8=E3=80=82 + =E8=BF=99=E6=98=AF=E5=9B=A0=E4=B8=BA=E5=9C=A8=E5=90=8C=E4=B8=80=E4= =B8=AA=E6=9F=B1=E9=9D=A2=E7=9A=84=E5=AD=98=E5=8F=96=E5=8F=AA=E9=9C=80=E8=A6= =81=E7=9B=98=E9=9D=A2=E7=9A=84=E8=BD=AC=E5=8A=A8=E8=80=8C=E4=B8=8D=E9=9C=80= =E8=A6=81=E7=A3=81=E5=A4=B4=E7=9A=84=E8=BF=90=E5=8A=A8=E3=80=82 + =E5=BD=93=E8=A2=AB=E5=88=A0=E9=99=A4=E7=9A=84=E8=AE=B0=E5=BD=95= =E8=B6=8A=E6=9D=A5=E8=B6=8A=E5=A4=9A=E6=97=B6=EF=BC=8C=E6=9C=89=E7=9A=84=E6= =96=87=E4=BB=B6=E6=9C=80=E7=B5=82=E4=BC=9A=E5=8F=98=E6=88=90=E4=B8=80=E4=B8= =AA=E6=B2=A1=E6=9C=89=E6=9C=89=E6=95=88=E8=AE=B0=E5=BD=95=E7=9A=84=E6=96=87= =E4=BB=B6=E3=80=82=E8=BF=99=E6=A0=B7=E7=9A=84=E6=96=87=E4=BB=B6=E5=B0=B1=E5= =8F=AF=E4=BB=A5=E5=9B=9E=E6=94=B6=E5=86=8D=E5=88=A9=E7=94=A8=E3=80=82Hornet= Q=E6=9C=89 + =E4=B8=80=E5=A5=97=E5=A4=8D=E6=9D=82=E7=9A=84=E6=96=87=E4=BB=B6=E5= =9B=9E=E6=94=B6=E7=AE=97=E6=B3=95=E6=9D=A5=E5=88=A4=E6=96=AD=E4=B8=80=E4=B8= =AA=E6=97=A5=E5=BF=97=E6=96=87=E4=BB=B6=E6=98=AF=E5=90=A6=E5=8F=AF=E4=BB=A5= =E8=A2=AB=E5=9B=9E=E6=94=B6=E3=80=82 + HornetQ=E8=BF=98=E6=9C=89=E4=B8=80=E5=A5=97=E6=96=87=E4=BB=B6=E6= =95=B4=E7=90=86=E7=9A=84=E7=AE=97=E6=B3=95=EF=BC=8C=E5=AE=83=E7=94=A8=E6=9D= =A5=E5=B0=86=E6=97=A5=E5=BF=97=E6=96=87=E4=BB=B6=E4=B8=AD=E4=B8=8D=E7=94=A8= =E7=9A=84=E7=A9=BA=E9=9A=99=E7=A7=BB=E9=99=A4=E4=BB=A5=E8=BE=BE=E5=88=B0=E6= =9B=B4=E9=AB=98=E7=9A=84=E5=AD=98=E8=B4=AE=E6=95=88=E7=8E=87=E3=80=82 + =E8=BF=99=E4=B8=AA=E6=97=A5=E5=BF=97=E7=B3=BB=E7=BB=9F=E5=85=A8= =E9=9D=A2=E6=94=AF=E6=8C=81=E4=BA=8B=E5=8A=A1=E5=8A=9F=E8=83=BD=E3=80=82=E6= =A0=B9=E6=8D=AE=E9=9C=80=E8=A6=81=E5=AE=83=E5=8F=AF=E4=BB=A5=E6=94=AF=E6=8C= =81=E6=9C=AC=E5=9C=B0=E4=BA=8B=E5=8A=A1=E6=88=96XA=E5=9E=8B=E4=BA=8B=E5=8A= =A1=E3=80=82 + =E6=97=A5=E5=BF=97=E7=B3=BB=E7=BB=9F=E7=9A=84=E5=A4=A7=E9=83=A8= =E5=88=86=E6=98=AF=E7=94=A8Java=E5=AE=9E=E7=8E=B0=E7=9A=84=EF=BC=8C=E4=BD= =86=E6=98=AFHornetQ=E5=9C=A8=E5=85=B6=E4=B8=AD=E5=AE=9E=E7=8E=B0=E4=BA=86= =E4=B8=80=E5=B1=82=E6=8A=BD=E8=B1=A1=E7=9A=84=E6=96=87=E4=BB=B6=E7=B3=BB=E7= =BB=9F=EF=BC=8C=E8=BF=99=E6=A0=B7=E5=B0=B1=E4=BD=BF=E5=BE=97=E5=85=B6=E5=AE= =83=E7=9A=84=E8=AF=AD=E8=A8=80=E5=AE=9E=E7=8E=B0=E8=83=BD + =E6=96=B9=E4=BE=BF=E5=9C=B0=E2=80=9C=E6=8F=92=E5=85=A5=E2=80=9D=E5= =88=B0=E6=97=A5=E5=BF=97=E6=A8=A1=E5=9D=97=E4=B8=AD=E3=80=82=E5=AE=9E=E9=99= =85=E4=B8=8AHornetQ=E8=87=AA=E5=B8=A6=E6=9C=89=E4=B8=A4=E7=A7=8D=E5=AE=9E= =E7=8E=B0=EF=BC=9A - Java NIO. - The first implementation uses standard Java NIO to inter= face with the file system. - This provides extremely good performance and runs on any p= latform where there's a - Java 5+ runtime. + Java NIO=E3=80=82 + =E7=AC=AC=E4=B8=80=E7=A7=8D=E9=87=87=E7=94=A8=E7=9A=84= =E6=98=AF=E6=A0=87=E5=87=86=E7=9A=84Java NIO=E6=8E=A5=E5=8F=A3=E6=9D=A5=E8= =BF=9B=E8=A1=8C=E6=96=87=E4=BB=B6=E7=9A=84=E6=93=8D=E4=BD=9C=E3=80=82=E5=AE= =83=E5=8F=AF=E4=BB=A5=E5=9C=A8=E4=BB=BB=E4=BD=95=E5=AE=89=E8=A3=85=E6=9C=89= Java 1.5=E6=88=96=E4=BB=A5=E4=B8=8A=E7=9A=84=E7=B3=BB=E7=BB=9F=E4=B8=AD=E8= =BF=90=E8=A1=8C=E3=80=82 + NIO=E7=9A=84=E6=80=A7=E8=83=BD=E6=98=AF=E5=BE=88=E9=AB=98= =E7=9A=84=E3=80=82 - Linux Asynchronous IO - The second implementation uses a thin native code wrappe= r to talk to the Linux - asynchronous IO library (AIO). With AIO, HornetQ will be c= alled back when the data - has made it to disk, allowing us to avoid explicit syncs a= ltogether and simply send - back confirmation of completion when AIO informs us that t= he data has been - persisted. - Using AIO will typically provide even better performance= than using Java - NIO. - The AIO journal is only available when running Linux ker= nel 2.6 or later and after - having installed libaio (if it's not already installed). F= or instructions on how to - install libaio please see . - For more information on libaio please see . - libaio is part of the kernel project. + Linux =E5=BC=82=E6=AD=A5IO =EF=BC=88Asynchronous IO=EF= =BC=89 + =E7=AC=AC=E4=BA=8C=E7=A7=8D=E6=98=AF=E9=87=87=E7=94=A8= =E7=9A=84Linux=E7=B3=BB=E7=BB=9F=E4=B8=AD=E7=9A=84=E5=BC=82=E6=AD=A5IO=E6= =8A=80=E6=9C=AF=EF=BC=88AIO=EF=BC=89=E3=80=82=E5=AE=83=E5=8C=85=E6=8B=AC=E4= =BA=86=E5=B0=91=E9=87=8F=E7=9A=84=E5=B9=B3=E5=8F=B0=E7=9B=B8=E5=85=B3=E7=9A= =84=E4=BB=A3=E7=A0=81=EF=BC=88native code)=E6=9D=A5 +=E3=80=80=E3=80=80=E3=80=80=E3=80=80=E3=80=80=E3=80=80=E3=80=80=E3=80=80= =E3=80=80=E3=80=80=E8=B0=83=E7=94=A8AIO=E7=9A=84=E6=8E=A5=E5=8F=A3=E3=80=82= =E5=BD=93=E6=95=B0=E6=8D=AE=E8=A2=AB=E4=BF=9D=E5=AD=98=E5=88=B0=E7=A3=81=E7= =9B=98=E4=B8=8A=E5=90=8E=EF=BC=8CAIO=E4=BC=9A=E5=9B=9E=E8=B0=83HornetQ=E8= =BF=9B=E8=A1=8C=E9=80=9A=E7=9F=A5=E3=80=82=E8=BF=99=E6=A0=B7=EF=BC=8CHornet= Q=E5=B0=B1=E9=81=BF=E5=85=8D=E4=BA=86=E7=A3=81=E7=9B=98=E5=86=99 + =E7=9A=84=E5=90=8C=E6=AD=A5=E6=93=8D=E4=BD=9C=E3=80=82 + =E4=BD=BF=E7=94=A8AIO=E9=80=9A=E5=B8=B8=E5=8F=AF=E4=BB= =A5=E6=9C=89=E6=AF=94NIO=E6=9B=B4=E9=AB=98=E7=9A=84=E6=80=A7=E8=83=BD=E3=80= =82 + =E9=87=87=E7=94=A8AIO=E7=9A=84=E6=97=A5=E5=BF=97=E5=8F= =AA=E8=83=BD=E5=9C=A8=E8=BF=90=E8=A1=8C Linux kernel 2.6 =E6=88=96=E4=BB=A5= =E4=B8=8A=E7=89=88=E6=9C=AC=E7=9A=84=E5=86=85=E6=A0=B8=E7=9A=84=E7=B3=BB=E7= =BB=9F=E4=B8=AD=E6=89=8D=E6=9C=89=E3=80=82=E5=8F=A6=E5=A4=96=E4=BD=A0=E9=9C= =80=E8=A6=81=E5=AE=89=E8=A3=85libaio=E3=80=82 + =E6=9C=89=E5=85=B3=E5=A6=82=E4=BD=95=E5=AE=89=E8=A3=85liba= io=E8=AF=B7=E5=8F=82=E8=A7=81 =E3=80=82 + =E6=9C=89=E5=85=B3libaio=E7=9A=84=E6=9B=B4=E5=A4=9A=E4= =BB=8B=E7=BB=8D=E5=8F=82=E8=A7=81 =E3=80=82 + libaio=E6=98=AFLinux=E5=86=85=E6=A0=B8=E9=A1=B9=E7=9B=AE= =E7=9A=84=E4=B8=80=E9=83=A8=E5=88=86=E3=80=82 - The standard HornetQ core server uses two instances of the journ= al: + =E6=A0=87=E5=87=86=E7=9A=84HornetQ=E6=A0=B8=E5=BF=83=E6=9C=8D=E5= =8A=A1=E5=99=A8=E4=BD=BF=E7=94=A8=E4=BA=86=E4=B8=A4=E7=A7=8D=E6=97=A5=E5=BF= =97=EF=BC=9A - Bindings journal. - This journal is used to store bindings related data. Tha= t includes the set of - queues that are deployed on the server and their attribute= s. It also stores data - such as id sequence counters. - The bindings journal is always a NIO journal as it is ty= pically low throughput - compared to the message journal. + =E7=BB=91=E5=AE=9A=E6=97=A5=E5=BF=97 + =E8=BF=99=E4=B8=AA=E6=97=A5=E5=BF=97=E7=94=A8=E6=9D=A5= =E4=BF=9D=E5=AD=98=E4=B8=8E=E7=BB=91=E5=AE=9A=E6=9C=89=E5=85=B3=E7=9A=84=E6= =95=B0=E6=8D=AE=E3=80=82=E5=85=B6=E4=B8=AD=E5=8C=85=E6=8B=AC=E5=9C=A8Hornet= Q=E4=B8=8A=E9=83=A8=E7=BD=B2=E7=9A=84=E9=98=9F=E5=88=97=E5=8F=8A=E5=85=B6= =E5=B1=9E=E6=80=A7=EF=BC=8C=E8=BF=98=E6=9C=89ID=E5=BA=8F=E5=88=97=E8=AE=A1= =E6=95=B0=E5=99=A8=E3=80=82 + =E7=BB=91=E5=AE=9A=E6=97=A5=E5=BF=97=E6=98=AF=E4=B8=80= =E4=B8=AANIO=E5=9E=8B=E6=97=A5=E5=BF=97=E3=80=82=E4=B8=8E=E6=B6=88=E6=81=AF= =E6=97=A5=E5=BF=97=E7=9B=B8=E6=AF=94=E5=AE=83=E7=9A=84=E5=91=91=E5=90=90=E9= =87=8F=E6=98=AF=E6=AF=94=E8=BE=83=E4=BD=8E=E7=9A=84=E3=80=82 - Message journal. - This journal instance stores all message related data, i= ncluding the message - themselves and also duplicate-id caches. - By default HornetQ will try and use an AIO journal. If A= IO is not available, e.g. - the platform is not Linux with the correct kernel version = or AIO has not been - installed then it will automatically fall back to using Ja= va NIO which is available - on any Java platform. + =E6=B6=88=E6=81=AF=E6=97=A5=E5=BF=97 + =E8=BF=99=E4=B8=AA=E6=97=A5=E5=BF=97=E7=94=A8=E6=9D=A5= =E5=AD=98=E8=B4=AE=E6=89=80=E6=9C=89=E6=B6=88=E6=81=AF=E7=9B=B8=E5=85=B3=E7= =9A=84=E6=95=B0=E6=8D=AE=EF=BC=8C=E5=8C=85=E6=8B=AC=E6=B6=88=E6=81=AF=E6=9C= =AC=E8=BA=AB=E5=92=8C=E9=87=8D=E5=A4=8DID=E7=BC=93=E5=AD=98=E3=80=82 + =E9=BB=98=E8=AE=A4=E6=83=85=E5=86=B5=E4=B8=8BHornetQ=E6= =80=BB=E6=98=AF=E4=BC=98=E5=85=88=E4=BD=BF=E7=94=A8AIO=E5=9E=8B=E6=97=A5=E5= =BF=97=E3=80=82=E5=A6=82=E6=9E=9CAIO=E5=9E=8B=E6=97=A5=E5=BF=97=E4=B8=8D=E5= =8F=AF=E7=94=A8=EF=BC=88=E6=AF=94=E5=A6=82=E5=9C=A8=E9=9D=9ELinux=E5=B9=B3= =E5=8F=B0=E4=B8=8A=E8=BF=90=E8=A1=8C=EF=BC=8C=E6=88=96=E7=B3=BB=E7=BB=9F=E5= =86=85=E6=A0=B8=E7=89=88=E6=9C=AC=E4=B8=8D=E5=90=8C=EF=BC=89 + =E5=AE=83=E5=B0=86=E8=87=AA=E5=8A=A8=E4=BD=BF=E7=94=A8NIO= =E5=9E=8B=E6=97=A5=E5=BF=97=E3=80=82 - For large messages, HornetQ persists them outside the message jo= urnal. This is discussed - in . - HornetQ can also be configured to page messages to disk in low m= emory situations. This is - discussed in . - If no persistence is required at all, HornetQ can also be config= ured not to persist any - data at all to storage as discussed in . + =E5=AF=B9=E4=BA=8E=E8=B6=85=E5=A4=A7=E6=B6=88=E6=81=AF=EF=BC=8CH= ornet=E5=B0=86=E5=AE=83=E4=BB=AC=E4=BF=9D=E5=AD=98=E5=9C=A8=E6=B6=88=E6=81= =AF=E6=97=A5=E5=BF=97=E4=B9=8B=E5=A4=96=E7=9A=84=E5=9C=B0=E6=96=B9=E3=80=82= =E8=AF=A6=E8=A7=81. + HornetQ=E8=BF=98=E5=8F=AF=E4=BB=A5=E5=9C=A8=E5=86=85=E5=AD=98=E4= =B8=8D=E5=A4=9F=E7=94=A8=E6=97=B6=E5=B0=86=E6=B6=88=E6=81=AF=E6=9A=82=E5=AD= =98=E5=88=B0=E7=A3=81=E7=9B=98=E4=B8=8A=E3=80=82=E7=9B=B8=E5=85=B3=E7=9A=84= =E9=85=8D=E7=BD=AE=E5=92=8C=E8=AF=B4=E6=98=8E=E5=8F=82=E8=A7=81=E3=80=82 + =E5=A6=82=E6=9E=9C=E4=B8=8D=E9=9C=80=E8=A6=81=E6=8C=81=E4=B9=85= =E5=8A=9F=E8=83=BD=EF=BC=8CHornetQ=E8=BF=98=E5=8F=AF=E4=BB=A5=E9=85=8D=E7= =BD=AE=E6=88=90=E9=9D=9E=E6=8C=81=E4=B9=85=E7=9A=84=E6=B6=88=E6=81=AF=E7=B3= =BB=E7=BB=9F=E3=80=82=E5=8F=82=E8=A7=81=E3=80=82
- Configuring the bindings journal - The bindings journal is configured using the following attri= butes in hornetq-configuration.xml + =E9=85=8D=E7=BD=AE=E7=BB=91=E5=AE=9A=E6=97=A5=E5=BF=97</tit= le> + <para>=E7=BB=91=E5=AE=9A=E6=97=A5=E5=BF=97=E7=9A=84=E9=85=8D=E7=BD= =AE=E5=8F=82=E6=95=B0=E5=9C=A8 <literal + >hornetq-configuration.xml</literal>=E6=96=87=E4=BB=B6=E4= =B8=AD=E3=80=82</para> <itemizedlist> <listitem> <para><literal>bindings-directory</literal></para> - <para>This is the directory in which the bindings journal = lives. The default value - is <literal>data/bindings</literal>.</para> + <para>=E8=BF=99=E6=98=AF=E7=BB=91=E5=AE=9A=E6=97=A5=E5=BF= =97=E7=9A=84=E4=BD=8D=E7=BD=AE=E3=80=82=E9=BB=98=E8=AE=A4=E5=80=BC=E6=98=AF= <literal>data/bindings</literal>=E3=80=82</para> </listitem> <listitem> <para><literal>create-bindings-dir</literal></para> - <para>If this is set to <literal>true</literal> then the b= indings directory will be - automatically created at the location specified in <li= teral - >bindings-directory</literal> if it does not alrea= dy exist. The default - value is <literal>true</literal></para> + <para>=E5=A6=82=E6=9E=9C=E8=AE=BE=E7=BD=AE=E4=B8=BA<litera= l>true</literal>=EF=BC=8C=E9=82=A3=E4=B9=88=E5=9C=A8 <literal + >bindings-directory</literal> =E6=89=80=E8=AE=BE= =E5=AE=9A=E7=9A=84=E4=BD=8D=E7=BD=AE=E4=B8=8D=E5=AD=98=E5=9C=A8=E7=9A=84=E6= =83=85=E5=86=B5=E4=B8=8B=E4=BC=9A=E8=87=AA=E5=8A=A8=E5=88=9B=E5=BB=BA=E5=AE= =83=E3=80=82=E9=BB=98=E8=AE=A4=E5=80=BC=E6=98=AF<literal>true</literal>=E3= =80=82</para> </listitem> </itemizedlist> </section> <section id=3D"configuring.message.journal"> - <title>Configuring the message journal - The message journal is configured using the following attrib= utes in hornetq-configuration.xml + =E9=85=8D=E7=BD=AE=E6=B6=88=E6=81=AF=E6=97=A5=E5=BF=97</tit= le> + <para>=E6=B6=88=E6=81=AF=E6=97=A5=E5=BF=97=E7=9A=84=E9=85=8D=E7=BD= =AE=E5=9C=A8<literal + >hornetq-configuration.xml=E6=96=87=E4=BB=B6=E4=B8=AD=E3= =80=82</literal></para> <itemizedlist> <listitem id=3D"configuring.message.journal.journal-directory"> <para><literal>journal-directory</literal></para> - <para>This is the directory in which the message journal l= ives. The default value is - <literal>data/journal</literal>.</para> - <para>For the best performance, we recommend the journal i= s located on its own - physical volume in order to minimise disk head movemen= t. If the journal is on a - volume which is shared with other processes which migh= t be writing other files - (e.g. bindings journal, database, or transaction coord= inator) then the disk head - may well be moving rapidly between these files as it w= rites them, thus - drastically reducing performance.</para> - <para>When the message journal is stored on a SAN we recom= mend each journal instance - that is stored on the SAN is given its own LUN (logica= l unit).</para> + <para>=E8=BF=99=E6=98=AF=E6=B6=88=E6=81=AF=E6=97=A5=E5=BF= =97=E6=96=87=E4=BB=B6=E6=89=80=E5=9C=A8=E7=9A=84=E7=9B=AE=E5=BD=95=E3=80=82= =E9=BB=98=E8=AE=A4=E5=80=BC=E6=98=AF + <literal>data/journal</literal>=E3=80=82</para> + <para>=E4=B8=BA=E4=BB=A5=E8=BE=BE=E5=88=B0=E6=9C=80=E4=BD= =B3=E6=80=A7=E8=83=BD=EF=BC=8C=E6=88=91=E4=BB=AC=E5=BB=BA=E8=AE=AE=E5=B0=86= =E6=97=A5=E5=BF=97=E8=AE=BE=E5=AE=9A=E5=88=B0=E5=B1=9E=E4=BA=8E=E5=AE=83=E8= =87=AA=E5=B7=B1=E7=9A=84=E7=89=A9=E7=90=86=E5=8D=B7=E4=B8=AD=E4=BB=A5=E5=87= =8F=E5=B0=91=E7=A3=81=E5=A4=B4=E8=BF=90=E5=8A=A8=E3=80=82=E5=A6=82=E6=9E=9C= =E6=97=A5=E5=BF=97=E7=9A=84=E4=BD=8D=E7=BD=AE=E4=B8=8E + =E5=85=B6=E5=AE=83=E8=BF=9B=E7=A8=8B=E5=85=B1=E7=94=A8= =EF=BC=88=E5=A6=82=E6=95=B0=E6=8D=AE=E5=BA=93=EF=BC=8C=E7=BB=91=E5=AE=9A=E6= =97=A5=E5=BF=97=E6=88=96=E4=BA=8B=E5=8A=A1=E7=9A=84=E6=97=A5=E5=BF=97=E7=AD= =89=EF=BC=89=E5=88=99=E7=A3=81=E5=A4=B4=E7=9A=84=E8=BF=90=E5=8A=A8=E6=98=BE= =E7=84=B6=E8=A6=81=E5=A2=9E=E5=8A=A0=E5=BE=88=E5=A4=9A=E3=80=82=E6=80=A7=E8= =83=BD=E4=B9=9F=E5=B0=B1=E6=B2=A1=E6=9C=89=E4=BF=9D=E8=AF=81=E4=BA=86=E3=80= =82</para> + <para>=E5=A6=82=E6=9E=9C=E6=B6=88=E6=81=AF=E6=97=A5=E5=BF= =97=E6=98=AF=E8=B4=AE=E5=AD=98=E5=9C=A8SAN=E4=B8=AD=EF=BC=8C=E6=88=91=E4=BB= =AC=E5=BB=BA=E8=AE=AE=E6=AF=8F=E4=B8=AA=E6=97=A5=E5=BF=97=E9=83=BD=E6=8B=A5= =E6=9C=89=E8=87=AA=E5=B7=B1=E7=9A=84LUN=EF=BC=88=E9=80=BB=E8=BE=91=E5=8D=95= =E5=85=83=EF=BC=89=E3=80=82</para> </listitem> <listitem id=3D"configuring.message.journal.create-journal-dir= "> <para><literal>create-journal-dir</literal></para> - <para>If this is set to <literal>true</literal> then the j= ournal directory will be - automatically created at the location specified in <li= teral - >journal-directory</literal> if it does not alread= y exist. The default value - is <literal>true</literal></para> + <para>=E5=A6=82=E6=9E=9C=E8=AE=BE=E4=B8=BA<literal>true</l= iteral>=EF=BC=8C=E5=88=99=E5=BD=93<literal + >journal-directory</literal>=E6=89=80=E6=8C=87=E5= =AE=9A=E7=9A=84=E6=97=A5=E5=BF=97=E7=9B=AE=E5=BD=95=E4=B8=8D=E5=AD=98=E5=9C= =A8=E6=97=B6=EF=BC=8C=E4=BC=9A=E8=87=AA=E5=8A=A8=E5=88=9B=E5=BB=BA=E5=AE=83= =E3=80=82=E9=BB=98=E8=AE=A4=E5=80=BC=E6=98=AF<literal>true</literal>=E3=80= =82</para> </listitem> <listitem id=3D"configuring.message.journal.journal-type"> <para><literal>journal-type</literal></para> - <para>Valid values are <literal>NIO</literal> or <literal>= ASYNCIO</literal>.</para> + <para>=E6=9C=89=E6=95=88=E5=80=BC=E6=98=AF<literal>NIO</li= teral> =E6=88=96=E8=80=85 <literal>ASYNCIO</literal>=E3=80=82</para> <para>Choosing <literal>NIO</literal> chooses the Java NIO= journal. Choosing - <literal>AIO</literal> chooses the Linux asynchron= ous IO journal. If you - choose <literal>AIO</literal> but are not running Linu= x or you do not have - libaio installed then HornetQ will detect this and aut= omatically fall back to - using <literal>NIO</literal>.</para> + <literal>AIO</literal> =E9=80=89=E6=8B=A9=E4=BD=9C= =E7=94=A8=E5=BC=82=E6=AD=A5IO=E5=9E=8B=E6=97=A5=E5=BF=97=E3=80=82=E5=A6=82= =E6=9E=9C=E4=BD=A0=E7=9A=84=E5=B9=B3=E5=8F=B0=E4=B8=8D=E6=98=AFLinux=E6=88= =96=E8=80=85=E4=BD=A0=E6=B2=A1=E6=9C=89=E5=AE=89=E8=A3=85 + libaio=EF=BC=8CHornetQ=E4=BC=9A=E8=87=AA=E5=8A=A8=E6= =A3=80=E6=B5=8B=E5=88=B0=E5=B9=B6=E4=BD=BF=E7=94=A8<literal>NIO</literal>= =E3=80=82</para> </listitem> <listitem id=3D"configuring.message.journal.journal-sync-trans= actional"> <para><literal>journal-sync-transactional</literal></para> - <para>If this is set to true then HornetQ will make sure a= ll transaction data is - flushed to disk on transaction boundaries (commit, pre= pare and rollback). The - default value is <literal>true</literal>.</para> + <para>=E5=A6=82=E6=9E=9C=E8=AE=BE=E4=B8=BAtrue=EF=BC=8CHor= netQ=E4=BC=9A=E4=BF=9D=E8=AF=81=E5=9C=A8=E4=BA=8B=E5=8A=A1=E7=9A=84=E8=BE= =B9=E7=95=8C=E6=93=8D=E4=BD=9C=E6=97=B6=EF=BC=88commit, prepare=E5=92=8Crol= lback=EF=BC=89=E5=B0=86=E4=BA=8B=E5=8A=A1=E6=95=B0=E6=8D=AE + =E5=86=99=E5=88=B0=E7=A3=81=E7=9B=98=E4=B8=8A=E3=80=82= =E9=BB=98=E8=AE=A4=E7=9A=84=E5=80=BC=E6=98=AF <literal>true</literal>=E3=80= =82</para> </listitem> <listitem id=3D"configuring.message.journal.journal-sync-non-t= ransactional"> <para><literal>journal-sync-non-transactional</literal></p= ara> - <para>If this is set to true then HornetQ will make sure n= on transactional message - data (sends and acknowledgements) are flushed to disk = each time. The default - value for this is <literal>true</literal>.</para> + <para>=E5=A6=82=E6=9E=9C=E8=AE=BE=E4=B8=BAtrue HornetQ=E5= =B0=86=E4=BF=9D=E8=AF=81=E6=AF=8F=E6=AC=A1=E9=83=BD=E5=B0=86=E9=9D=9E=E4=BA= =8B=E5=8A=A1=E6=80=A7=E6=B6=88=E6=81=AF=E6=95=B0=E6=8D=AE=EF=BC=88=E5=8F=91= =E9=80=81=E5=92=8C=E9=80=9A=E7=9F=A5=EF=BC=89=E4=BF=9D=E5=AD=98=E5=88=B0=E7= =A3=81=E7=9B=98=E4=B8=8A=E3=80=82=E9=BB=98=E8=AE=A4=E5=80=BC=E6=98=AF <lite= ral>true</literal>=E3=80=82</para> </listitem> <listitem id=3D"configuring.message.journal.journal-file-size"> <para><literal>journal-file-size</literal></para> - <para>The size of each journal file in bytes. The default = value for this is <literal - >10485760</literal> bytes (10MiB).</para> + <para>=E6=AF=8F=E4=B8=AA=E6=97=A5=E5=BF=97=E6=96=87=E4=BB= =B6=E7=9A=84=E5=A4=A7=E4=BA=8E=E3=80=82=E5=8D=95=E4=BD=8D=E4=B8=BA=E5=AD=97= =E8=8A=82=E3=80=82=E9=BB=98=E8=AE=A4=E5=80=BC=E6=98=AF <literal + >10485760</literal> bytes (10MiB)=E3=80=82</para> </listitem> <listitem id=3D"configuring.message.journal.journal-min-files"> <para><literal>journal-min-files</literal></para> - <para>The minimum number of files the journal will maintai= n. When HornetQ starts and - there is no initial message data, HornetQ will pre-cre= ate <literal - >journal-min-files</literal> number of files.</par= a> - <para>Creating journal files and filling them with padding= is a fairly expensive - operation and we want to minimise doing this at run-ti= me as files get filled. By - precreating files, as one is filled the journal can im= mediately resume with the - next one without pausing to create it.</para> - <para>Depending on how much data you expect your queues to= contain at steady state - you should tune this number of files to match that tot= al amount of data.</para> + <para>=E6=9C=80=E5=B0=91=E6=97=A5=E5=BF=97=E6=96=87=E4=BB= =B6=E6=95=B0=E3=80=82=E5=BD=93HornetQ=E5=90=AF=E5=8A=A8=E6=97=B6=E4=BC=9A= =E5=88=9B=E5=BB=BA=E8=BF=99=E4=B8=80=E6=95=B0=E9=87=8F=E7=9A=84=E6=96=87=E4= =BB=B6=E3=80=82</para> + <para>=E5=88=9B=E5=BB=BA=E5=B9=B6=E5=88=9D=E5=A7=8B=E5=8C= =96=E6=97=A5=E5=BF=97=E6=96=87=E4=BB=B6=E6=98=AF=E4=B8=80=E9=A1=B9=E8=B4=B9= =E6=97=B6=E7=9A=84=E6=93=8D=E4=BD=9C=EF=BC=8C=E9=80=9A=E5=B8=B8=E4=B8=8D=E5= =B8=8C=E6=9C=9B=E8=BF=99=E4=BA=9B=E6=93=8D=E4=BD=9C=E5=9C=A8=E6=9C=8D=E5=8A= =A1=E8=BF=90=E8=A1=8C=E6=97=B6=E6=89=A7=E8=A1=8C=E3=80=82=E9=A2=84=E5=85=88= =E5=88=9B=E5=BB=BA=E5=B9=B6=E5=88=9D=E5=A7=8B=E5=8C=96=E8=BF=99=E4=BA=9B + =E6=97=A5=E5=BF=97=E6=96=87=E4=BB=B6=E5=B0=86=E4=BC=9A= =E4=BD=BFHornetQ=E5=9C=A8=E5=B7=A5=E4=BD=9C=E6=97=B6=E9=81=BF=E5=85=8D=E6= =B5=AA=E8=B4=B9=E4=B8=8D=E5=BF=85=E8=A6=81=E7=9A=84=E6=97=B6=E9=97=B4=E3=80= =82</para> + <para>=E6=A0=B9=E6=8D=AE=E4=BD=A0=E7=9A=84=E5=BA=94=E7=94= =A8=E4=B8=AD=E9=98=9F=E5=88=97=E4=B8=AD=E6=B6=88=E6=81=AF=E9=87=8F=E7=9A=84= =E5=AE=9E=E9=99=85=E8=A6=81=E6=B1=82=E5=8F=AF=E4=BB=A5=E9=80=82=E5=BD=93=E8= =B0=83=E8=8A=82=E8=BF=99=E4=B8=80=E5=8F=82=E6=95=B0=E3=80=82</para> </listitem> <listitem id=3D"configuring.message.journal.journal-max-io"> <para><literal>journal-max-io</literal></para> - <para>Write requests are queued up before being submitted = to the system for - execution. This parameter controls the maximum number = of write requests that can - be in the IO queue at any one time. If the queue becom= es full then writes will - block until space is freed up. </para> - <para>When using NIO, this value should always be equal to= <literal - >1</literal></para> - <para>When using AIO, the default should be <literal>500</= literal>.</para> - <para>The system maintains different defaults for this par= ameter depening on whether - it's NIO or AIO (default for NIO is 1, default for AIO= is 500)</para> - <para>There is a limit and the total max AIO can't be high= er than what is configured - at the OS level (/proc/sys/fs/aio-max-nr) usually at 6= 5536.</para> + <para>=E5=86=99=E8=AF=B7=E6=B1=82=E8=A2=AB=E6=94=BE=E5=88= =B0=E4=B8=80=E4=B8=AA=E9=98=9F=E5=88=97=E4=B8=AD=EF=BC=8C=E7=84=B6=E5=90=8E= =E5=86=8D=E8=A2=AB=E5=8F=91=E9=80=81=E5=88=B0=E7=B3=BB=E7=BB=9F=E4=B8=AD=E6= =89=A7=E8=A1=8C=E3=80=82=E8=BF=99=E4=B8=AA=E5=8F=82=E6=95=B0=E9=99=90=E5=88= =B6=E4=BA=86=E5=9C=A8=E4=BB=BB=E4=B8=80=E6=97=B6=E9=97=B4=E9=98=9F=E5=88=97= =E4=B8=AD=E5=8F=AF=E4=BB=A5=E5=AD=98=E6=94=BE=E7=9A=84=E6=9C=80=E5=A4=A7=E6= =95=B0=E9=87=8F + =E7=9A=84=E5=86=99=E8=AF=B7=E6=B1=82=E3=80=82=E5=A6=82= =E6=9E=9C=E9=98=9F=E5=88=97=E8=BE=BE=E5=88=B0=E8=BF=99=E4=B8=AA=E9=99=90=E5= =88=B6=EF=BC=8C=E4=BB=BB=E4=BD=95=E6=96=B0=E7=9A=84=E5=86=99=E8=AF=B7=E6=B1= =82=E9=83=BD=E5=B0=86=E8=A2=AB=E9=98=BB=E5=A1=9E=EF=BC=8C=E7=9B=B4=E5=88=B0= =E9=98=9F=E5=88=97=E4=B8=AD=E6=9C=89=E7=A9=BA=E4=BD=8D=E4=B8=BA=E6=AD=A2=E3= =80=82</para> + <para>=E5=BD=93=E4=BD=BF=E7=94=A8NIO=E6=97=B6=EF=BC=8C=E8= =BF=99=E4=B8=AA=E5=8F=82=E6=95=B0=E5=BF=85=E9=A1=BB=E4=B8=BA <literal + >1</literal>=E3=80=82</para> + <para>=E5=BD=93=E4=BD=BF=E7=94=A8AIO=E6=97=B6=EF=BC=8C=E5= =AE=83=E7=9A=84=E9=BB=98=E8=AE=A4=E5=80=BC=E6=98=AF<literal>500</literal>= =E3=80=82</para> + <para>=E7=B3=BB=E7=BB=9F=E6=A0=B9=E6=8D=AE=E4=B8=8D=E5=90= =8C=E7=B1=BB=E5=9E=8B=E7=9A=84=E6=97=A5=E5=BF=97=E6=8F=90=E4=BE=9B=E4=B8=8D= =E5=90=8C=E7=9A=84=E9=BB=98=E8=AE=A4=E5=80=BC=E3=80=82(NIO =E4=B8=BA 1, AI= O =E4=B8=BA 500)=E3=80=82</para> + <para>=E5=A6=82=E6=9E=9C=E6=98=AFAIO=EF=BC=8C=E8=BF=99=E4= =B8=AA=E5=8F=82=E6=95=B0=E7=9A=84=E4=B8=8A=E9=99=90=E4=B8=8D=E8=83=BD=E8=B6= =85=E8=BF=87=E6=93=8D=E4=BD=9C=E7=B3=BB=E7=BB=9F=E7=9A=84=E9=99=90=E5=88=B6= (/proc/sys/fs/aio-max-nr)=EF=BC=8C=E8=BF=99=E4=B8=AA=E5=80=BC=E9=80=9A=E5= =B8=B8=E4=B8=BA65536.</para> </listitem> <listitem id=3D"configuring.message.journal.journal-buffer-tim= eout"> <para><literal>journal-buffer-timeout</literal></para> - <para>Instead of flushing on every write that requires a f= lush, we maintain an - internal buffer, and flush the entire buffer either wh= en it is full, or when a - timeout expires, whichever is sooner. This is used for= both NIO and AIO and - allows the system to scale better with many concurrent= writes that require - flushing.</para> - <para>This parameter controls the timeout at which the buf= fer will be flushed if it - hasn't filled already. AIO can typically cope with a h= igher flush rate than NIO, - so the system maintains different defaults for both NI= O and AIO (default for NIO - is 3333333 nanoseconds - 300 times per second, default= for AIO is 500000 - nanoseconds - ie. 2000 times per second).</para> + <para>=E6=97=A5=E5=BF=97=E6=A8=A1=E5=9D=97=E4=B8=AD=E6=9C= =89=E4=B8=80=E4=B8=AA=E5=86=85=E9=83=A8=E7=BC=93=E5=86=B2=E3=80=82=E6=AF=8F= =E6=AC=A1=E5=86=99=E7=9A=84=E5=86=85=E5=AE=B9=E5=B9=B6=E4=B8=8D=E6=98=AF=E9= =83=BD=E7=AB=8B=E5=8D=B3=E5=86=99=E5=88=B0=E7=A3=81=E7=9B=98=E4=B8=8A=EF=BC= =8C=E8=80=8C=E6=98=AF=E5=85=88=E6=94=BE=E5=88=B0=E8=BF=99=E4=B8=AA=E5=86=85= =E9=83=A8=E7=BC=93=E5=AD=98=E4=B8=AD=E3=80=82=E5=BD=93=E8=BF=99=E4=B8=AA=E7= =BC=93=E5=AD=98=E5=B7=B2=E6=BB=A1=E6=97=B6=EF=BC=8C=E6=88=96 + =E8=80=85=E8=B6=85=E8=BF=87=E4=BA=86=E4=B8=80=E5=AE=9A= =E7=9A=84=E6=97=B6=E9=97=B4=EF=BC=88timeout=EF=BC=89=EF=BC=8C=E6=89=8D=E5= =B0=86=E7=BC=93=E5=AD=98=E7=9A=84=E6=95=B0=E6=8D=AE=E5=AD=98=E5=88=B0=E7=A1= =AC=E7=9B=98=E4=B8=8A=E3=80=82NIO=E5=92=8CAIO=E9=83=BD=E6=9C=89=E8=BF=99=E4= =B8=80=E7=89=B9=E7=82=B9=E3=80=82=E9=87=87=E7=94=A8=E7=BC=93=E5=AD=98=E7=9A= =84=E6=96=B9=E5=BC=8F=E5=8F=AF=E4=BB=A5=E5=BE=88=E5=A5=BD=E5=9C=B0=E6=BB=A1= =E8=B6=B3 + =E5=A4=A7=E9=87=8F=E5=B9=B6=E5=8F=91=E5=86=99=E6=95=B0= =E6=8D=AE=E7=9A=84=E9=9C=80=E8=A6=81=E3=80=82</para> + <para>=E8=BF=99=E4=B8=80=E5=8F=82=E6=95=B0=E8=A7=84=E5=AE= =9A=E4=BA=86=E7=BC=93=E5=AD=98=E7=9A=84=E5=A4=B1=E6=95=88=E6=97=B6=E9=97=B4= =EF=BC=8C=E5=A6=82=E6=9E=9C=E8=BF=87=E4=BA=86=E8=BF=99=E4=B8=AA=E6=97=B6=E9= =97=B4=EF=BC=8C=E5=8D=B3=E4=BD=BF=E7=BC=93=E5=AD=98=E8=BF=98=E6=B2=A1=E6=9C= =89=E6=BB=A1=EF=BC=8C=E4=B9=9F=E5=B0=86=E6=95=B0=E6=8D=AE=E5=86=99=E5=85=A5= =E7=A3=81=E7=9B=98=E4=B8=AD=E3=80=82AIO=E7=9A=84=E5=86=99=E5=85=A5 + =E8=83=BD=E5=8A=9B=E9=80=9A=E5=B8=B8=E8=A6=81=E6=AF=94= NIO=E5=BC=BA=E3=80=82=E5=9B=A0=E6=AD=A4=E7=B3=BB=E7=BB=9F=E5=AF=B9=E4=BA=8E= =E4=B8=8D=E5=90=8C=E7=B1=BB=E5=9E=8B=E7=9A=84=E6=97=A5=E5=BF=97=E6=9C=89=E7= =9D=80=E4=B8=8D=E5=90=8C=E7=9A=84=E9=BB=98=E8=AE=A4=E5=80=BC=E3=80=82=EF=BC= =88 NIO=E7=9A=84=E9=BB=98=E8=AE=A4=E5=80=BC=E6=98=AF 3333333 =E7=BA=B3=E7= =A7=92=EF=BC=8C=E5=8D=B3=E6=AF=8F=E7=A7=92300=E6=AC=A1=E3=80=82 + =E8=80=8CAIO=E5=88=99=E6=98=AF500000=E7=BA=B3=E7=A7=92= =EF=BC=8C=E5=8D=B3=E6=AF=8F=E7=A7=922000=E6=AC=A1=E3=80=82=EF=BC=89</para> <note> - <para>By increasing the timeout, you may be able to in= crease system throughput - at the expense of latency, the default parameters = are chosen to give a - reasonable balance between throughput and latency.= </para> + <para>=E5=8A=A0=E5=9C=A8=E8=BF=99=E4=B8=AA=E5=8F=82=E6= =95=B0=E6=9C=89=E5=8F=AF=E8=83=BD=E4=BC=9A=E5=A2=9E=E5=8A=A0=E7=B3=BB=E7=BB= =9F=E7=9A=84=E5=91=91=E5=90=90=E9=87=8F=EF=BC=8C=E4=BD=86=E5=8F=AF=E8=83=BD= =E4=BC=9A=E9=99=8D=E4=BD=8E=E7=B3=BB=E7=BB=9F=E7=9A=84=E5=93=8D=E5=BA=94=E8= =83=BD=E5=8A=9B=E3=80=82=E9=80=9A=E5=B8=B8=E6=83=85=E5=86=B5=E4=B8=8B=E9=BB= =98=E8=AE=A4=E5=80=BC=E5=BA=94=E8=AF=A5=E6=98=AF=E6=AF=94=E8=BE=83=E7=90=86= =E6=83=B3=E7=9A=84=E6=8A=98=E4=B8=AD=E9=80=89=E6=8B=A9=E3=80=82</para> </note> </listitem> <listitem id=3D"configuring.message.journal.journal-buffer-siz= e"> <para><literal>journal-buffer-size</literal></para> - <para>The size of the timed buffer on AIO. The default val= ue is <literal - >490KiB</literal>.</para> + <para>AIO=E7=9A=84=E5=AE=9A=E6=97=B6=E7=BC=93=E5=86=B2=E7= =9A=84=E5=A4=A7=E5=B0=8F=EF=BC=8C=E9=BB=98=E8=AE=A4=E5=80=BC=E4=B8=BA<liter= al + >490KiB</literal>=E3=80=82</para> </listitem> <listitem id=3D"configuring.message.journal.journal-compact-mi= n-files"> <para><literal>journal-compact-min-files</literal></para> - <para>The minimal number of files before we can consider c= ompacting the journal. The - compacting algorithm won't start until you have at lea= st <literal - >journal-compact-min-files</literal></para> - <para>The default for this parameter is <literal>10</liter= al></para> + <para>=E8=BF=9B=E8=A1=8C=E6=95=B4=E7=90=86=E5=8E=8B=E7=BC= =A9=E6=97=A5=E5=BF=97=E6=93=8D=E4=BD=9C=E7=9A=84=E6=9C=80=E5=B0=91=E6=96=87= =E4=BB=B6=E6=95=B0=E3=80=82=E5=BD=93=E6=97=A5=E5=BF=97=E6=96=87=E4=BB=B6=E5= =B0=91=E4=BA=8E=E8=BF=99=E4=B8=AA=E6=95=B0=E6=97=B6=EF=BC=8C=E7=B3=BB=E7=BB= =9F=E4=B8=8D=E4=BC=9A=E8=BF=9B=E8=A1=8C=E6=96=87=E4=BB=B6=E7=9A=84=E6=95=B4= =E7=90=86=E5=8E=8B=E7=BC=A9=E3=80=82</para> + <para>=E9=BB=98=E8=AE=A4=E5=80=BC=E6=98=AF <literal>10</li= teral>=E3=80=82</para> </listitem> <listitem id=3D"configuring.message.journal.journal-compact-pe= rcentage"> <para><literal>journal-compact-percentage</literal></para> - <para>The threshold to start compacting. When less than th= is percentage is - considered live data, we start compacting. Note also t= hat compacting won't kick - in until you have at least <literal>journal-compact-mi= n-files</literal> data - files on the journal</para> - <para>The default for this parameter is <literal>30</liter= al></para> + <para>=E5=BC=80=E5=A7=8B=E6=95=B4=E7=90=86=E5=8E=8B=E7=BC= =A9=E7=9A=84=E7=95=8C=E9=99=90=E5=80=BC=E3=80=82=E5=BD=93=E6=9C=89=E6=95=88= =E6=95=B0=E6=8D=AE=E7=9A=84=E6=AF=94=E4=BE=8B=E5=B0=91=E4=BA=8E=E8=BF=99=E4= =B8=AA=E5=80=BC=E6=97=B6=E7=B3=BB=E7=BB=9F=E5=BC=80=E5=A7=8B=E6=95=B4=E7=90= =86=E5=8E=8B=E7=BC=A9=E6=97=A5=E5=BF=97=E3=80=82=E6=B3=A8=E6=84=8F=E6=98=AF= =E5=90=A6=E8=BF=9B=E8=A1=8C=E5=8E=8B=E7=BC=A9=E8=BF=98=E8=A6=81 + =E5=8F=97=E5=88=B0=E3=80=81<literal>journal-compact-mi= n-files</literal>=E5=8F=82=E6=95=B0=E7=9A=84=E6=8E=A7=E5=88=B6=E3=80=82</pa= ra> + <para>=E8=BF=99=E4=B8=80=E5=8F=82=E6=95=B0=E7=9A=84=E9=BB= =98=E8=AE=A4=E5=80=BC=E6=98=AF <literal>30</literal>=E3=80=82</para> </listitem> </itemizedlist> </section> <section id=3D"disk-write-cache"> - <title>An important note on disabling disk write cache. + =E5=85=B3=E4=BA=8E=E5=85=B3=E9=97=AD=E7=A3=81=E7=9B=98=E5= =86=99=E7=BC=93=E5=86=B2=E7=9A=84=E9=87=8D=E8=A6=81=E8=AF=B4=E6=98=8E</titl= e> <warning> - <para>Most disks contain hardware write caches. A write cache = can increase the apparent - performance of the disk because writes just go into the ca= che and are then lazily - written to the disk later. </para> - <para>This happens irrespective of whether you have executed a= fsync() from the - operating system or correctly synced data from inside a Ja= va program!</para> - <para>By default many systems ship with disk write cache enabl= ed. This means that even - after syncing from the operating system there is no guaran= tee the data has actually - made it to disk, so if a failure occurs, critical data can= be lost.</para> - <para>Some more expensive disks have non volatile or battery b= acked write caches which - won't necessarily lose data on event of failure, but you n= eed to test them!</para> - <para>If your disk does not have an expensive non volatile or = battery backed cache and - it's not part of some kind of redundant array (e.g. RAID),= and you value your data - integrity you need to make sure disk write cache is disabl= ed.</para> - <para>Be aware that disabling disk write cache can give you a = nasty shock performance - wise. If you've been used to using disks with write cache = enabled in their default - setting, unaware that your data integrity could be comprom= ised, then disabling it - will give you an idea of how fast your disk can perform wh= en acting really - reliably.</para> - <para>On Linux you can inspect and/or change your disk's write= cache settings using the - tools <literal>hdparm</literal> (for IDE disks) or <litera= l>sdparm</literal> or - <literal>sginfo</literal> (for SDSI/SATA disks)</para> - <para>On Windows you can check / change the setting by right c= licking on the disk and - clicking properties.</para> + <para>=E5=A4=A7=E5=A4=9A=E6=95=B0=E7=A3=81=E7=9B=98=E4=BA=A7= =E5=93=81=E9=83=BD=E6=9C=89=E7=A1=AC=E4=BB=B6=E7=9A=84=E5=86=99=E7=BC=93=E5= =86=B2=E3=80=82=E5=86=99=E7=BC=93=E5=86=B2=E5=8F=AF=E4=BB=A5=E6=98=8E=E6=98= =BE=E6=8F=90=E9=AB=98=E5=86=99=E7=9A=84=E6=95=88=E7=8E=87=E3=80=82</para> + <para>=E8=BF=99=E6=A0=B7=E7=9A=84=E5=86=99=E7=BC=93=E5=86=B2= =E4=B8=8E=E8=B0=83=E7=94=A8fsync()=E8=BF=99=E6=A0=B7=E7=9A=84=E7=B3=BB=E7= =BB=9F=E5=87=BD=E6=95=B0=E6=97=A0=E5=85=B3=EF=BC=8C=E4=B9=9F=E4=B8=8E=E5=9C= =A8Java=E7=A8=8B=E5=BA=8F=E4=B8=AD=E8=BF=9B=E8=A1=8C=E7=9A=84=E5=90=8C=E6= =AD=A5=E8=B0=83=E7=94=A8=E6=97=A0=E5=85=B3=EF=BC=81</para> + <para>=E9=BB=98=E8=AE=A4=E6=83=85=E5=86=B5=E4=B8=8B=E8=AE=B8= =E5=A4=9A=E7=A3=81=E7=9B=98=E7=9A=84=E5=86=99=E7=BC=93=E5=86=B2=E6=98=AF=E6= =89=93=E5=BC=80=E7=9A=84=E3=80=82=E8=BF=99=E6=A0=B7=E7=9A=84=E6=83=85=E5=86= =B5=E4=B8=8B=EF=BC=8C=E5=8D=B3=E4=BD=BF=E4=BD=A0=E5=9C=A8=E7=A8=8B=E5=BA=8F= =E4=B8=AD=E8=B0=83=E7=94=A8=E4=BA=86=E5=90=8C=E6=AD=A5=E6=93=8D=E4=BD=9C=E4= =B9=9F=E4=B8=8D=E8=83=BD=E4=BF=9D=E8=AF=81=E4=BD=A0=E7=9A=84=E6=95=B0=E6=8D= =AE + =E5=B0=B1=E7=9C=9F=E6=AD=A3=E5=86=99=E5=88=B0=E7=A3=81=E7= =9B=98=E4=BB=8B=E8=B4=A8=E4=B8=AD=E4=BA=86=E3=80=82=E5=9B=A0=E6=AD=A4=E5=A6= =82=E6=9E=9C=E6=95=85=E9=9A=9C=E5=8F=91=E7=94=9F=E6=97=B6=EF=BC=8C=E5=85=B3= =E9=94=AE=E7=9A=84=E6=95=B0=E6=8D=AE=E6=98=AF=E6=9C=89=E5=8F=AF=E8=83=BD=E4= =B8=A2=E5=A4=B1=E7=9A=84=E3=80=82</para> + <para>=E6=9C=89=E4=BA=9B=E6=98=82=E8=B4=B5=E7=9A=84=E7=A3=81= =E7=9B=98=E9=87=87=E7=94=A8=E9=9D=9E=E6=8C=A5=E5=8F=91=E6=80=A7=E7=9A=84=E4= =BB=8B=E8=B4=A8=E6=88=96=E6=9C=89=E7=94=B5=E6=BA=90=E7=9A=84=E7=BC=93=E5=86= =B2=E6=9D=A5=E4=BF=9D=E8=AF=81=E6=95=85=E9=9A=9C=E6=83=85=E5=86=B5=E4=B8=8B= =E4=B8=8D=E4=B8=A2=E5=A4=B1=E6=95=B0=E6=8D=AE=E3=80=82=E4=BD=86=E6=98=AF=E4= =BD=A0=E4=BB=8D=E9=9C=80=E8=A6=81=E5=AF=B9=E8=BF=99=E4=BA=9B=E7=A1=AC=E7=9B= =98=E8=BF=9B=E8=A1=8C=E6=B5=8B=E8=AF=95=EF=BC=81</para> + <para>=E5=A6=82=E6=9E=9C=E4=BD=A0=E7=9A=84=E7=A3=81=E7=9B=98= =E6=B2=A1=E6=9C=89=E9=9D=9E=E6=8C=A5=E5=8F=91=E6=80=A7=E6=88=96=E6=9C=89=E7= =94=B5=E6=BA=90=E7=9A=84=E7=BC=93=E5=AD=98=EF=BC=8C=E4=B9=9F=E4=B8=8D=E6=98= =AF=E6=9F=90=E7=A7=8D=E5=86=97=E4=BD=99=E7=9B=98=E9=98=B5=EF=BC=88=E5=A6=82= RAID=EF=BC=89=E3=80=82=E8=A6=81=E6=83=B3=E4=BF=9D=E8=AF=81=E5=85=B3=E9=94= =AE=E6=95=B0=E6=8D=AE=E4=B8=8D=E4=B8=A2=E5=A4=B1=EF=BC=8C=E4=BD=A0=E9=9C=80= =E8=A6=81 + =E5=85=B3=E9=97=AD=E7=A3=81=E7=9B=98=E7=9A=84=E5=86=99=E7= =BC=93=E5=86=B2=E3=80=82</para> + <para>=E9=9C=80=E8=A6=81=E7=9F=A5=E9=81=93=E7=9A=84=E6=98=AF= =E5=85=B3=E9=97=AD=E7=A3=81=E7=9B=98=E7=9A=84=E5=86=99=E7=BC=93=E5=86=B2=E4= =BC=9A=E6=98=BE=E8=91=97=E9=99=8D=E4=BD=8E=E7=A3=81=E7=9B=98=E7=9A=84=E6=80= =A7=E8=83=BD=E3=80=82=E5=A6=82=E6=9E=9C=E5=B9=B3=E6=97=B6=E4=BD=A0=E5=9C=A8= =E4=BD=BF=E7=94=A8=E7=A3=81=E7=9B=98=E6=97=B6=E9=83=BD=E6=89=93=E5=BC=80=E5= =86=99=E7=BC=93=E5=86=B2=EF=BC=8C=E9=82=A3=E4=B9=88=E5=BD=93=E4=BD=A0=E4=B8= =BA=E4=BA=86 + =E4=BF=9D=E6=8A=A4=E4=BD=A0=E7=9A=84=E6=95=B0=E6=8D=AE=E8= =80=8C=E5=85=B3=E9=97=AD=E5=AE=83=E6=97=B6=EF=BC=8C=E4=BD=A0=E5=8F=AF=E8=83= =BD=E6=84=9F=E5=88=B0=E4=B8=A4=E7=A7=8D=E6=83=85=E5=86=B5=E4=B8=8B=E7=9A=84= =E6=98=8E=E6=98=BE=E5=B7=AE=E5=BC=82=E3=80=82</para> + <para>Linux=E5=8F=AF=E4=BB=A5=E7=94=A8<literal>hdparm</literal= > (IDE=E7=A1=AC=E7=9B=98) =E6=88=96 <literal>sdparm</literal> =E6=88=96 + <literal>sginfo</literal> (SDSI/SATA =E7=A1=AC=E7=9B= =98)=E5=B7=A5=E5=85=B7=E6=9D=A5=E6=9F=A5=E7=9C=8B=E5=B9=B6=E4=BF=AE=E6=94= =B9=E7=A3=81=E7=9B=98=E7=9A=84=E5=86=99=E7=BC=93=E5=86=B2=E3=80=82</para> + <para>=E5=9C=A8Windows=E5=B9=B3=E5=8F=B0=E4=B8=8A=E4=BD=A0=E5= =8F=AF=E4=BB=A5=E5=8F=B3=E9=94=AE=E7=82=B9=E5=87=BB=E7=A1=AC=E7=9B=98=E5=9B= =BE=E6=A0=87=EF=BC=8C=E5=B9=B6=E9=80=89=E6=8B=A9=E2=80=9C=E5=B1=9E=E6=80=A7= =E2=80=9D=E8=8F=9C=E5=8D=95=E9=A1=B9=E6=9D=A5=E6=93=8D=E4=BD=9C=E3=80=82</p= ara> </warning> </section> <section id=3D"installing-aio"> - <title>Installing AIO - The Java NIO journal gives great performance, but If you are= running HornetQ using - Linux Kernel 2.6 or later, we highly recommend you use the AIO - journal for the very best persistence performance. - It's not possible to use the AIO journal under other operati= ng systems or earlier - versions of the Linux kernel. - If you are running Linux kernel 2.6 or later and don't alrea= dy have libaio installed, you can easily install it usi= ng the following - steps: - Using yum, (e.g. on Fedora or Red Hat Enterprise Linux): + =E5=AE=89=E8=A3=85AIO + Java NIO=E6=97=A5=E5=BF=97=E7=9A=84=E6=80=A7=E8=83=BD=E6=98= =AF=E5=BE=88=E5=A5=BD=E7=9A=84=E3=80=82=E4=BD=86=E6=98=AF=E5=A6=82=E6=9E=9C= =E4=BD=A0=E6=98=AF=E5=9C=A8Linux =E5=86=85=E6=A0=B82.6=E7=89=88=E6=9C=AC=E4= =BB=A5=E4=B8=8A=E7=9A=84=E7=B3=BB=E7=BB=9F=E4=B8=AD=E8=BF=90=E8=A1=8CHornet= Q=EF=BC=8C=E6=88=91=E4=BB=AC=E5=BC=BA=E7=83=88=E5=BB=BA=E8=AE=AE + =E4=BD=A0=E4=BD=BF=E7=94=A8 AIO=E6=97=A5=E5= =BF=97=EF=BC=8C=E4=BB=A5=E8=8E=B7=E5=BE=97=E6=9B=B4=E4=BD=B3=E7=9A=84=E6=80= =A7=E8=83=BD=E3=80=82 + =E5=9C=A8=E6=97=A9=E6=9C=9F=E7=9A=84Linux=E7=89=88=E6=9C=AC= =E4=B8=AD=E6=88=96=E5=85=B6=E5=AE=83=E6=93=8D=E4=BD=9C=E7=B3=BB=E7=BB=9F=E4= =B8=AD=E4=B8=8D=E5=8F=AF=E4=BB=A5=E4=BD=BF=E7=94=A8 AIO=E6=97=A5=E5=BF=97= =E3=80=82 + =E5=A6=82=E6=9E=9C=E4=BD=A0=E7=9A=84Linux=E5=86=85=E6=A0=B8= =E6=98=AF2.6=E7=89=88=E6=9C=AC=E6=88=96=E4=BB=A5=E4=B8=8A=E4=BD=86=E6=B2=A1= =E6=9C=89=E5=AE=89=E8=A3=85 libaio=EF=BC=8C=E6=8C=89=E7=85=A7=E4=B8=8B=E5= =88=97=E6=AD=A5=E9=AA=A4=E5=8F=AF=E4=BB=A5=E5=BE=88=E5=AE=B9=E6=98=93=E5=9C= =B0=E5=AE=89=E8=A3=85=E5=AE=83=EF=BC=9A + =E4=BD=BF=E7=94=A8 yum=EF=BC=8C(=E5=A6=82 Fedora =E6=88=96 R= ed Hat Enterprise Linux): yum install libaio - Using aptitude, (e.g. on Ubuntu or Debian system): + =E4=BD=BF=E7=94=A8 aptitude, (=E5=A6=82 Ubuntu =E6=88=96 Deb= ian): apt-get install libaio
- Configuring HornetQ for Zero Persistence - In some situations, zero persistence is sometimes required f= or a messaging system. - Configuring HornetQ to perform zero persistence is straightfor= ward. Simply set the - parameter persistence-enabled in hornetq-configuration.xml to false. - Please note that if you set this parameter to false, then zero - persistence will occur. That means no bindings data, message d= ata, large message data, - duplicate id caches or paging data will be persisted. + =E9=85=8D=E7=BD=AEHornetQ=E4=B8=8D=E4=BD=BF=E7=94=A8=E6=8C= =81=E4=B9=85=E5=8C=96 + =E5=9C=A8=E4=B8=80=E4=BA=9B=E6=83=85=E5=86=B5=E4=B8=8B=E6=B6= =88=E6=81=AF=E7=B3=BB=E7=BB=9F=E5=B9=B6=E4=B8=8D=E9=9C=80=E8=A6=81=E6=8C=81= =E4=B9=85=E5=8C=96=E3=80=82=E8=BF=99=E6=97=B6=E5=8F=AF=E4=BB=A5=E9=85=8D=E7= =BD=AEHornetQ=E4=B8=8D=E4=BD=BF=E7=94=A8=E6=8C=81=E4=B9=85=E5=B1=82=E3=80= =82=E5=8F=AA=E8=A6=81=E5=B0=86hornetq-configuration.xml=E6=96=87=E4=BB=B6=E4= =B8=AD=E7=9A=84persistence-enabled + =E5=8F=82=E6=95=B0=E8=AE=BE=E4=B8=BAfalse= =E5=8D=B3=E5=8F=AF=E3=80=82 + =E6=B3=A8=E6=84=8F=E5=A6=82=E6=9E=9C=E4=BD=A0=E5=B0=86=E8=AF= =A5=E5=8F=82=E6=95=B0=E8=AE=BE=E4=B8=BA false=E6=9D=A5=E5=85=B3=E9=97=AD=E6= =8C=81=E4=B9=85=E5=8C=96=EF=BC=8C=E5=B0=B1=E6=84=8F=E5=91=B3=E7=9D=80=E6=89= =80=E6=9C=89=E7=9A=84=E7=BB=91=E5=AE=9A=E6=95=B0=E6=8D=AE=E3=80=81=E6=B6=88= =E6=81=AF=E6=95=B0=E6=8D=AE=E3=80=81=E8=B6=85=E5=A4=A7=E6=B6=88=E6=81=AF=E6= =95=B0=E6=8D=AE=E3=80=81=E9=87=8D=E5=A4=8DID=E7=BC=93=E5=86=B2=E4=BB=A5=E5= =8F=8A=E8=BD=AC=E7=A7=BB=EF=BC=88paging=EF=BC=89=E6=95=B0=E6=8D=AE=E9=83=BD= =E5=B0=86=E4=B8=8D=E4=BC=9A=E8=A2=AB=E6=8C=81=E4=B9=85=E3=80=82
--===============7161531426508718359==--