½âBug֮·-¼ÇÒ»´Î´æ´¢¹ÊÕϵÄÅŲé¹ý³Ì
½âBug֮·-¼ÇÒ»´Î´æ´¢¹ÊÕϵÄÅŲé¹ý³Ì
¸ß¿ÉÓÃÕæÊÇһ˿ϸ½Ú¶¼²»µÃÂí»¢¡£Æ½Ê±ÅܵĺúõÄϵͳ£¬ÔÚÏàÓ¦Ó²¼þ³öÏÖ¹ÊÕÏʱ¾Í»áÒý·¢³öDZÔÚµÄBug¡£Æ«Æ«ÕâЩ¹ÊÕÏÔÚÓ¦ÓòãµÄ±íÏÖÏ¡Ææ¹Å¹Ö£¬ºÜÄÑÈÃÈËÁªÏëµ½ÊÇÓ²¼þ³öÁËÎÊÌâ£¬ÌØ±ðÊÇż·¢ÐÔ³öÏÖµÄÎÊÌâ¸üÄÑÅŲ顣½ñÌ죬±ÊÕ߾͸ø´ó¼Ò´øÀ´Ò»¸ö´æ´¢Å¼·¢ÐÔ¹ÊÕϵÄÅŲé¹ý³Ì¡£
BugÏÖ³¡
365betÌåÓýÔÚÏßÃǵĻý·ÖÓ¦ÓÃÓÉÓÚÁ¿·Ç³£´ó£¬365betÌåÓýÔÚÏßÐèÒª½øÐзֿâ·Ö±í£¬365betÌåÓýÔÚÏß½ÓÈëÁË365betÌåÓýÔÚÏßÃǵÄÖмä¼þ¡£Ò»Ö±Îȶ¨ÔËÐУ¬µ«Ó¦ÓÃ×î½üÈ·¾³£Å¼·¢Á¬½Ó½¨Á¢²»Éϵı¨´í¡£±¨´íÈçÏÂ:
GetConnectionTimeOutException
¶ø±ÊÕßÖмä¼þÕâ±ßÊÕµ½µÄÈ·ÊÇ:
NIOReactor - register err java.nio.channels.CloasedChannelException
ÕâÑùµÄ¸æ¾¯¡£Õû¸öBugÏÖ³¡ÈçÏÂͼËùʾ:
ż·¢ÐÔ´íÎó
֮ǰ³ö¹ýÀàËÆregister errÕâÑùµÄÁãÐDZ¨¾¯£¬×îºóÔÒòÊǰ²È«É¨Ã裬²¢Ã»ÓжÔÒµÎñÔì³ÉÈκÎÓ°Ïì¡£¶øÕâÒ»´Î£¬ÀàËÆµÄ±¨´íÔì³ÉÁËÒµÎñµÄ´óÁ¿Á¬½Ó³¬Ê±¡£ÓÉÓÚ·âÍø£¬ÏßÉÏÖмä¼þºÍÓ¦ÓÃÒѾÎȶ¨ÔÚÏßÉÏÅÜÁËÒ»¸ö¶àÔ£¬´úÂë²ãÃæÃ»ÓÐÈκθ͝£¡Í»È»³öÏÖµÄÕâ¸ö´íÎó¸Ð¾õÊÇ»·¾³³öÏÖÁËijЩÎÊÌâ¡£¶øÇÒÓÉÓÚÏßÉϵÄÓ¦ÓúÍÖмä¼þ¶¼ÊǼ¯Èº£¬³öÎÊÌâʱºò¶¼²»ÊǹÂÁ¢µÄ»úÆ÷±¨´í£¬Ã»µÀÀíËùÓлúÆ÷¶¼ÕýºÃÓÐÎÊÌâ¡£ÈçÏÂͼËùʾ:
¿ªÊ¼ÅŲéÊÇ·ñÍøÂçÎÊÌâ
Óöµ½ÕâÖÖÁ¬½Ó³¬Ê±£¬±ÊÕß×î×ÔÈ»µÄÏë·¨µ±È»ÊÇÍøÂç³öÁËÎÊÌâ¡£ÓÚÊÇÕÒÍø¹¤½øÐÐÅŲ飬
ÔÚ¼à¿ØÀïÃæ·¢ÏÖÍøÂçÒ»Ö±ºÜÎȶ¨¡£¶øÇÒÈç¹ûÊÇÍøÂç³öÏÖÎÊÌâ£¬Í¬Ò»Íø¶ÎµÄÓ¦ÓÃÓ¦¸ÃÒ²¶¼»á±¨´í
²Å¶Ô¡£ÊÂʵÉÏÖ»ÓжÔÓ¦µÄÓ¦ÓúÍÖмä¼þ²Å±¨´í£¬ÆäËüµÄÓ¦ÓÃÒÀ¾ÉÎÈÎȵ±µ±¡£
ÓÖ·¢ÉúÁËÁ½´Î
¾ÍÔÚ±ÊÕß¾õµÃÕâ¸öż·¢ÐÔÎÊÌâ¿ÉÄܲ»»áÔÙ³öÏÖµÄʱºò£¬ÓÖ¿ªÊ¼¶¶ÁË¡£¶øÇÒÊÇÒ»¸öÏÂÎçÁ¬¶¶ÁËÁ½´Î¡£Á³±»´òµÄžžµÄ£¬ËãÁËËãÁË£¬ÏÈÖØÆô°É¡£ÖØÆôÖмä¼þºó£¬ÒÔΪÄÜÏûÍ£Ò»»á£¬Ã»Ïëµ½°ë¸öСʱ֮ÄÚÓÖ±¨ÁË¡£¿´À´½ñÌì²»¸ÉµôÕâ¸öBugÊÇϲ»Á˰àÁË!
¿ªÊ¼ÅŲéÈÕÖ¾
ÊÂʵÉÏ£¬±ÊÕßÒ»¿ªÊ¼¾Í·¢ÏÖÖмä¼þÓе÷Óúó¶ËÊý¾Ý¿âÂýSQLµÄÏÖÏó£¬ÓÉÓڱȽÏż·¢£¬365betÌåÓýÔÚÏß½«Õâ¸öÏÖÏ󷢸øDBAÖ®ºó¾ÍûÓмÌÐø¸ú½ø,DBAÒ²·´À¡SQLÖ´ÐÐûÓÐÈκ365betÌåÓýÔÚÏßì³£¡£±ÊÕß¿ªÊ¼ÈÏÕæ·ÖÎöÈÕÖ¾Ö®ºó£¬·¢ÏÖÒ»µ©ÓÐ Öмä¼þµÄregister err ±Ø¶¨»á³öÏÖÖмä¼þµ÷Óúó¶ËÊý¾Ý¿âµÄsql read timeoutµÄ±¨´í¡£
µ«ÕâÁ½¸ö±¨´íÍêÈ«²»ÊÇÔÚÒ»¸öÏß³ÌÀïÃæµÄ£¬Ò»¸öÊÇ´¦Àíǰ¶ËµÄReactorỊ̈߳¬Ò»¸öÊÇ´¦Àíºó¶ËSQLµÄWorkerỊ̈߳¬ÈçÏÂͼËùʾ:
ÕâÁ½¸öÏß³ÌÊÇ»¥Ïà¶ÀÁ¢µÄ£¬´úÂëÖв¢Ã»Óз¢ÏÖÈκλúÖÆÄÜÈÃÕâÁ½¸öÏ̻߳¥ÏàÓ°Ïì¡£ÄѵÀÕæÊÇÕâЩ»úÆ÷±¾ÉíÍøÂç³öÁËÎÊÌ⣿ǰ¶ËAPPʧ°Ü£¬ºó¶Ëµ÷ÓÃDB³¬Ê±£¬Ôõô¿´¶¼ÏñÍøÂçµÄÎÊÌ⣡
½øÒ»²½½øÐÐÅŲé
¼ÈÈ»ÓÐDB(Êý¾Ý¿â)³¬Ê±£¬±ÊÕß¾ÍÏÈ¿´¿´µ÷ÓÃÄĸöDB³¬Ê±°É£¬±Ï¾¹ºóÃæÓÐÒ»¶ÑDB¡£±ÊÕßͻȻ·¢ÏÖ£¬ºÍ֮ǰµÄÂýSQLÒ»Ñù£¬¶¼Êǵ÷Óõڶþ¸öÊý¾Ý¿â³¬Ê±£¬¶øDBAÄDZßȴ˵SQLÖ´ÐÐûÓÐÈκ365betÌåÓýÔÚÏßì³££¬
±ÊÕ߸оõÃ÷ÏÔSQLÖ´ÐÐÓÐÎÊÌ⣬ֻ²»¹ýDBAÊDzÉÑù¶øÇÒ½«²ÉÑùºÄʱƽ¾ùµÄ£¬Å¼¶ûµÄ¼¸±ÊºÄʱ²¢²»»áÔÚÕûÌåSQLµÄºÄʱÀïÃæÓÐËùÌåÏÖ¡£
Ö»ÄÜ¿¿ÈÕÖ¾·ÖÎöÁË
¼ÈÈ»ÕÒ²»µ½Ê²Ã´Í·Ð÷£¬ÄÇôֻÄÜ´ÓÈÕÖ¾ÈëÊÖ£¬ºÃºÃ·ÖÎöÍÆÀíÁË¡£REACTORÏ̺߳ÍWorkerÏß³Ìͬʱ±¨´í£¬µ«Á½Õß²¢ÎÞÌØÊâµÄ¹ØÁª£¬ËµÃ÷¿ÉÄÜÊÇͬһ¸öÔÒòÒýÆðµÄÁ½ÖÖ²»Í¬ÏÖÏó¡£±ÊÕßÔÚÏßÉϱ¨´íÈÕÖ¾ÀïÃæ½øÐÐϸϸËÑË÷£¬·¢ÏÖÔÚ´óÁ¿µÄ
NIOReactor-1-RW register err java.nio.channels.CloasedChannelException
ÈÕÖ¾Öлá²ôÔÓ×ÅÕâ¸ö±¨´í:
NIOReactor-1-RW Socket Read timed out
at XXXXXX . doCommit
at XXXXXX Socket read timedout
ÕâÒ»¿´¾Í·¢ÏÖÁ˶ËÄߣ¬Reactor×÷Ϊһ¸öIOỊ̈߳¬Ôõô»áÓÐÊý¾Ý¿âµ÷ÓÃÄØ?ÓÚÊÇ·ÁË·Ô´Â룬ÔÀ´£¬365betÌåÓýÔÚÏßÃǵÄÖмä¼þÔÚ´¦Àícommit/rollbackÕâÑùµÄ²Ù×÷ʱºò»¹ÊÇÔÚReactorÏ߳̽øÐеģ¡ºÜÃ÷ÏÔReactorÏ߳̿¨Ö÷ÊÇÓÉÓÚcommitÂýÁË!±ÊÕßÁ¢Âí·´Ó¦¹ýÀ´,¶øÕâ¸öcommitÂýÒ²ÕýÊǵ¼ÖÂÁËregsiter errÒÔ¼°¿Í»§¶ËÎÞ·¨´´½¨Á¬½ÓµÄÔªÐס£ÈçÏÂÃæËùʾ:
ÓÉÓÚapp1µÄcommitÌØ±ðÂý¶ø¿¨×¡ÁËreactor1Ị̈߳¬´Ó¶øÂäÔÚreactor1Ïß³ÌÉϵÄÎÕÊÖ²Ù×÷¶¼»á³¬Ê±£¡ÈçÏÂͼËùʾ:
Ϊʲô֮ǰµÄÄ£Äâå´»ú²âÊÔ·¢ÏÖ²»ÁËÕâÒ»µã
ÒòΪģÄâå´»úµÄʱºò£¬ÔÚÊÂÎñ¿ªÊ¼µÄµÚÒ»ÌõSQL¾Í»á±¨´í£¬¶øÖ´ÐÐSQL¶¼ÊÇÔÚWorkerÏß³ÌÀïÃæ£¬
365betÌåÓýÔÚÏß²¢²»»á´¥·¢reactorÏß³ÌÖÐcommit³¬Ê±ÕâÖÖÏÖÏó£¬365betÌåÓýÔÚÏß²âÊÔµÄʱºò¾ÍÒÅ©ÁËÕâÒ»µã¡£
Ϊʲôcommit»á±äÂý?
ϵͳһֱÅܵĺúõģ¬ÎªÊ²Ã´Í»È»commit¾Í±äÂýÁËÄØ£¬¶øÇÒ±ÊÕß·¢ÏÖ£¬Õâ¸öcommit±äÂýËù¹ØÁªµÄDBÕýºÃÒ²ÊdzöÏÖÂýSQLµÄÄǸöDB¡£ÓÚÊDZÊÕßÁ¢Âí¾ÍÈ¥ÕÒÁËDBA,ÓÉÓÚ365betÌåÓýÔÚÏßÃÇÓ¦ÓòãºÍÊý¾Ý¿â²ã¶¼Ã»ÓÐcommitʱ¼äµÄ¼à¿Ø(ÒòΪһ°ã¶¼ºÜ¿ì£¬ºÜÉÙ³öÏÖÂýµÄÏÖÏó)¡£DBAÔÚÊý¾Ý¿â´òµÄÈÕÖ¾ÀïÃæ½øÐÐÁËͳ¼Æ£¬·¢ÏÖȷʵ±äÂýÁË£¬¶øÇÒ±äÂýµÄʱ¼äºÍ365betÌåÓýÔÚÏßÃÇÓ¦Óñ¨´íµÄʱ¼äÏà·ûºÏ£¡
˳ÌÙÃþ¹Ï£¬365betÌåÓýÔÚÏßÃÇÓÖÁªÏµÁËSA£¬·¢ÏÖÆäÖкʹ洢Ïà¹ØµÄHBA¿¨Óб¨´í£¡ÈçÏÂͼËùʾ:
±¨´íʱ¼ä¶¼ÊÇÒ»Öµģ¡
½ô¼±ÐÞ¸´·½°¸
ÓÉÓÚÊÇHBA¿¨±¨´íÁË£¬ÊôÓÚÓ²¼þ¹ÊÕÏ£¬¶øÓ²¼þ¹ÊÕϲ¢²»ÊǺܿì¾ÍÄܽøÐÐÐÞ¸´µÄ¡£365betÌåÓýÔÚÏßDBA×öÁËÒ»´Î½ô¼±µÄÖ÷´ÓÇл»£¬½ø¶ø±ÜÃâÕâÒ»ÎÊÌâ¡£
Ò»ÉíÀ亹
֮ǰ¾ÍÓÐÂýsqlÂýÂý±ä¶à£¬¶øºóͻȻÊý¾Ý¿â´æ´¢hba¿¨å´»úµ¼ÖÂÒµÎñ²»¿ÉÓõÄÇé¿ö¡£
¶øÕâÒ»´Îµ½×îºóÖ÷´ÓÇл»Ç°ÎªÖ¹£¬±¨´íÔ½À´Ô½Æµ·±£¬¸Ð¾õÔÙ¹ýÒ»¶Îʱ¼ä,HBA¿¨¹ý¶Îʱ¼ä¾ÍÍêÈ«²»¿ÉÓã¬Öص¸Ö®Ç°µÄ¸²ÕÞÁË£¡
Öмä¼þÐÞ¸´
365betÌåÓýÔÚÏßÃÇÔÚÖмä¼þ²ãÃæ½«commitºÍrollback²Ù×÷Ųµ½WorkerÀïÃæ¡£ÕâÑù£¬commitÈç¹û¿¨×¡¾Í²»ÔÙ»áÒýÆð´´½¨Á¬½Óʧ°ÜÕâÖÖÓ¦Óñ¨´íÁË¡£
×ܽá
ÓÉÓÚÈí¼þ²ãÃæÆäʵÊDZȽÏÐÅÈÎÓ²¼þµÄ£¬365betÌåÓýÔÚÏßÔÚÓ²¼þ³öÎÊÌâʱ£¬¾Í»á²úÉúºÜ¶à¹îÒìµÄÏÖÏ󣬶øÇÒºÍÓ²¼þ×îÖÕµÄÔÒòÔÚ±íÃæÉÏÍêÈ«²úÉú²»Á˹ØÁª¡£Ö»ÓÐͨ¹ý³éË¿°þ¼ë£¬ÂýÂýµÄȥ̽ѰÏÖÏóµÄ±¾ÖʲŻá½â¾ö×îÖÕµÄÎÊÌâ¡£Òª×öµ½¸ß¿ÉÓÃÕæµÄÊÇҪСÐÄÆÀ¹À¸÷ÖÖϸ½Ú£¬²ÅÄÜÈÃϵͳ¸ü¼Ó½¡×³£¡
¹«ÖÚºÅ
¹Ø×¢±ÊÕß¹«Öںţ¬»ñÈ¡¸ü¶à¸É»õÎÄÕÂ: