|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
ÀÌÀü Ŭ·¡½º ´ÙÀ½ Ŭ·¡½º | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ | |||||||||
°³¿ä: NESTED | Çʵå | »ý¼ºÀÚ | ¸Þ¼µå | »ó¼¼: Çʵå | »ý¼ºÀÚ | ¸Þ¼µå |
public interface ClientRequestInterceptorOperations
Ŭ¶óÀ̾ðÆ®ÃøÀÇ ¿ä±¸ ÀΟ¼¼ÇÁŸÀÔ´Ï´Ù.
¿ä±¸ ÀΟ¼¼ÇÁŸ´Â ƯÁ¤ÀÇ ÁöÁ¡¿¡¼ ORB¸¦ °³ÀÔ½ÃÄÑ ¿ä±¸/ÀÀ´ä ¼ø¼ÀÇ È帧À» Â÷´ÜÇØ, ¼ºñ½º°¡ ¿ä±¸ Á¤º¸¸¦ Á¶È¸Çϰųª Ŭ¶óÀÌ¾ðÆ®¿Í ¼¹ö¿ÍÀÇ »çÀÌ¿¡ °Å·¡µÇ´Â ¼ºñ½º ÄÁÅØ½ºÆ®¸¦ Á¶ÀÛÇϰųª ÇÒ ¼ö ÀÖµµ·Ï ¼³°èµÇ°í ÀÖ½À´Ï´Ù. ¿ä±¸ ÀΟ¼¼ÇÁŸÀÇ ÁÖµÈ »ç¿ë ¸ñÀûÀº ORB ¼ºñ½º°¡ Ŭ¶óÀÌ¾ðÆ®¿Í ¼¹ö¿ÍÀÇ »çÀÌ¿¡ ÄÁÅØ½ºÆ® Á¤º¸¸¦ Àü¼Û ÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â °ÍÀÔ´Ï´Ù. ¿ä±¸ ÀΟ¼¼ÇÁŸ¿¡´Â Ŭ¶óÀ̾ðÆ®Ãø°ú ¼¹öÃøÀÇ 2 Á¾·ù°¡ ÀÖ½À´Ï´Ù.
Ŭ¶óÀ̾ðÆ®ÃøÀÇ ÀΟ¼¼ÇÁŸ¸¦ ÀÛ¼ºÇÏ·Á¸é,
ClientRequestInterceptor
ÀÎÅÍÆäÀ̽º¸¦ ±¸ÇöÇÕ´Ï´Ù.
ClientRequestInfo
¸Þ¼µå °³¿ä | |
---|---|
void |
receive_exception (ClientRequestInfo ri)
¿¹¿Ü°¡ ¹ß»ýÇÑ °ÍÀ» ÀΟ¼¼ÇÁŸ¿¡ ÅëÁöÇÕ´Ï´Ù. |
void |
receive_other (ClientRequestInfo ri)
¿ä±¸¿¡ ÀÇÇØ º¸Åë ÀÇ ÀÀ´ä ¶Ç´Â ¿¹¿Ü ÀÌ¿ÜÀÇ °ÍÀÌ µ¹·ÁÁÖ°íÁ³À» ¶§¿¡ ÀΟ¼¼ÇÁŸ°¡ ÀÌ¿ë °¡´ÉÇÑ Á¤º¸¸¦ Á¶È¸ÇÒ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù. |
void |
receive_reply (ClientRequestInfo ri)
¼¹ö·ÎºÎÅÍ ÀÀ´äÀÌ µ¹·ÁÁÖ°íÁö°í ³ª¼ Á¦¾î°¡ Ŭ¶óÀÌ¾ðÆ®¿¡ µ¹·ÁÁÖ°íÁú ¶§±îÁö, ÀΟ¼¼ÇÁŸ°¡ ÀÀ´ä¿¡ °üÇÑ Á¤º¸¸¦ Á¶È¸ÇÒ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù. |
void |
send_poll (ClientRequestInfo ri)
TII (Time-Independent Invocation) Æú¸µ Ãëµæ ÀÀ´ä ¼ø¼ÀÇ ½ÇÇà½Ã¿¡ ÀΟ¼¼ÇÁŸ°¡ Á¤º¸¸¦ Á¶È¸ÇÒ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù. |
void |
send_request (ClientRequestInfo ri)
¿ä±¸°¡ ¼¹ö¿¡ ¼Û½ÅµÇ±â Àü¿¡ ÀΟ¼¼ÇÁŸ°¡ ¿ä±¸ Á¤º¸¸¦ Á¶È¸Çϰųª ¼ºñ½º ÄÁÅØ½ºÆ®¸¦ º¯°æÇϰųª ÇÒ ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù. |
ÀÎÅÍÆäÀ̽º org.omg.PortableInterceptor. InterceptorOperations ·ÎºÎÅÍ »ó¼ÓµÈ ¸Þ¼µå |
---|
destroy,
name |
¸Þ¼µåÀÇ »ó¼¼ |
---|
void send_request(ClientRequestInfo ri) throws ForwardRequest
ÀÌ Â÷´ÜÁ¡¿¡¼´Â ½Ã½ºÅÛ ¿¹¿Ü°¡ ¹ß»ýµÇ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. ÀÌ ¿¹¿Ü°¡ Throw µÇ¾úÀ» °æ¿ì, ´Ù¸¥ ÀΟ¼¼ÇÁŸÀÇ send_request
¿ÀÆÛ·¹À̼ÇÀº ºÒ·Á°¡
Áö ¾Ê½À´Ï´Ù. ÇÃ·Î¿ì ½ºÅûóÀÇ ±×·¯ÇÑ ÀΟ¼¼ÇÁŸ°¡ Ç¥½ÃµÇ¾î ±× receive_exception
Â÷´ÜÁ¡ÀÌ È£ÃâÇÕ´Ï´Ù. ¶Ç, ÀÌ Â÷´ÜÁ¡¿¡¼´Â ForwardRequest
¿¹¿Ü°¡ ¹ß»ýµÇ´Â °æ¿ìµµ ÀÖ½À´Ï´Ù. ÀÌ ¿¹¿Ü°¡ Throw µÇ¾úÀ» °æ¿ì, ´Ù¸¥ ÀΟ¼¼ÇÁŸÀÇ send_request
¿ÀÆÛ·¹À̼ÇÀº ºÒ·Á°¡
Áö ¾Ê½À´Ï´Ù. ÇÃ·Î¿ì ½ºÅûóÀÇ ±×·¯ÇÑ ÀΟ¼¼ÇÁŸ°¡ Ç¥½ÃµÇ¾î ±× receive_other
Â÷´ÜÁ¡ÀÌ È£ÃâÇÕ´Ï´Ù.
ÀÌ Â÷´ÜÁ¡À¸·ÎºÎÅÍ ½Ã½ºÅÛ ¿¹¿Ü¸¦ Throw ÇÏ´Â °æ¿ì, ÁذÅÇϰí ÀÖ´Â ÀΟ¼¼ÇÁŸ´Â completion_status ½Ã¸àƽ½º¿¡ ¾ö¹ÐÇÏ°Ô µû¸¨´Ï´Ù. completion_status
´Â COMPLETED_NO
°¡ µË´Ï´Ù.
ri
- Â÷´ÜµÇ´Â ÇöÀçÀÇ ¿ä±¸¿¡ °üÇÑ Á¤º¸
ForwardRequest
- Throw µÇ¾úÀ» °æ¿ì´Â ¿¹¿Ü·Î °¡¸®Å°´Â »õ·Î¿î °´Ã¼¸¦ »ç¿ëÇØ ¿ä±¸ÀÇ Àç½ÃÇàÀ» ÇÏ´Â °ÍÀ» ORB¿¡ ÅëÁöÇÑ´Ùvoid send_poll(ClientRequestInfo ri)
TII¸¦ »ç¿ëÇϸé, ¾îÇø®ÄÉÀ̼ÇÀº Æú¸µ Ŭ¶óÀÌ¾ðÆ®µîÀÇ Å¬¶óÀÌ¾ðÆ®¿¡ ÀÇÇØ ÀÌÀü¿¡ ¼Û½ÅµÈ ¿ä±¸¿¡ ´ëÇÑ ÀÀ´äÀ» Æú¸µ ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ Æú¸µÀº, send_poll
Â÷´ÜÁ¡À» °³ÀÔ½ÃÄÑ ÀΟ¼¼ÇÁŸ¿¡ º¸°íµÇ¾îreceive_reply
¶Ç´Â receive_exception
Â÷´ÜÁ¡À» °³ÀÔ½ÃÄÑ ÀÀ´äÀÌ ¸®Åϵ˴ϴÙ
. Æú¸µÀÇ Å¸ÀÓ ¾Æ¿ôÀÌ Áö³ªÁö ¾Ê¾Ò´Âµ¥ ÀÀ´äÀ» »ç¿ëÇÒ ¼ö ¾ø´Â °æ¿ì´Â ½Ã½ºÅÛ ¿¹¿Ü TIMEOUT
°¡ Throw µÇ¾î ÀÌ ¿¹¿Ü¿¡ ÀÇÇØ receive_exception
°¡ È£ÃâµË´Ï´Ù.
ÀÌ Â÷´ÜÁ¡¿¡¼´Â ½Ã½ºÅÛ ¿¹¿Ü°¡ ¹ß»ýµÇ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. ÀÌ ¿¹¿Ü°¡ Throw µÇ¾úÀ» °æ¿ì, ´Ù¸¥ ÀΟ¼¼ÇÁŸÀÇ send_poll
¿ÀÆÛ·¹À̼ÇÀº ºÒ·Á°¡
Áö ¾Ê½À´Ï´Ù. ÇÃ·Î¿ì ½ºÅûóÀÇ ±×·¯ÇÑ ÀΟ¼¼ÇÁŸ°¡ Ç¥½ÃµÇ¾î ±× receive_exception
Â÷´ÜÁ¡ÀÌ È£ÃâÇÕ´Ï´Ù.
ÀÌ Â÷´ÜÁ¡À¸·ÎºÎÅÍ ½Ã½ºÅÛ ¿¹¿Ü¸¦ Throw ÇÏ´Â °æ¿ì, ÁذÅÇϰí ÀÖ´Â ÀΟ¼¼ÇÁŸ´Â completion_status
½Ã¸àƽ½º¿¡ ¾ö¹ÐÇÏ°Ô µû¸¨´Ï´Ù. completion_status´Â COMPLETED_NO
°¡ µË´Ï´Ù.
ri
- Â÷´ÜµÇ´Â ÇöÀçÀÇ ¿ä±¸¿¡ °üÇÑ Á¤º¸
TIMEOUT
- Æú¸µÀÇ Å¸ÀÓ ¾Æ¿ôÀÌ Áö³ªÁö ¾Ê¾Ò´Âµ¥ ÀÀ´äÀ» »ç¿ëÇÒ ¼ö ¾ø´Â °æ¿ìvoid receive_reply(ClientRequestInfo ri)
ÀÌ Â÷´ÜÁ¡¿¡¼´Â ½Ã½ºÅÛ ¿¹¿Ü°¡ ¹ß»ýµÇ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. ÀÌ ¿¹¿Ü°¡ Throw µÇ¾úÀ» °æ¿ì, ´Ù¸¥ ÀΟ¼¼ÇÁŸÀÇ receive_reply
¿ÀÆÛ·¹À̼ÇÀº ºÒ·Á°¡
Áö ¾Ê½À´Ï´Ù. ÇÃ·Î¿ì ½ºÅó»ÀÇ ³ª¸ÓÁöÀÇ ÀΟ¼¼ÇÁŸ°¡ Ç¥½ÃµÇ¾î ±× receive_exception
Â÷´ÜÁ¡ÀÌ È£ÃâÇÕ´Ï´Ù.
ÀÌ Â÷´ÜÁ¡À¸·ÎºÎÅÍ ½Ã½ºÅÛ ¿¹¿Ü¸¦ Throw ÇÏ´Â °æ¿ì, ÁذÅÇϰí ÀÖ´Â ÀΟ¼¼ÇÁŸ´Â completion_status
½Ã¸àƽ½º¿¡ ¾ö¹ÐÇÏ°Ô µû¸¨´Ï´Ù. completion_status
´Â COMPLETED_YES
°¡ µË´Ï´Ù.
ri
- Â÷´ÜµÇ´Â ÇöÀçÀÇ ¿ä±¸¿¡ °üÇÑ Á¤º¸void receive_exception(ClientRequestInfo ri) throws ForwardRequest
ÀÌ Â÷´ÜÁ¡¿¡¼´Â ½Ã½ºÅÛ ¿¹¿Ü°¡ ¹ß»ýµÇ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. ÀÌ ¿¹¿Ü°¡ Throw µÇ¸é, ÇÃ·Î¿ì ½ºÅÃÀ¸·ÎºÎÅÍ Ç¥½ÃµÈ ÈļÓÀÇ ÀΟ¼¼ÇÁŸ°¡ ±× receive_exception
È£Ãâ·Î ¼ö½ÅÇÏ´Â ¿¹¿Ü°¡ º¯°æµË´Ï´Ù. Ŭ¶óÀÌ¾ðÆ®¿¡ ¹ß»ýµÇ´Â ¿¹¿Ü´Â ÀΟ¼¼ÇÁŸ¿¡ ÀÇÇØ ¸¶Áö¸·¿¡ ¹ß»ýµÇ´Â ¿¹¿Ü°¡ µË´Ï´Ù. ´Ù¸¸, ¿¹¿Ü¸¦ º¯°æÇÏ´Â ÀΟ¼¼ÇÁŸ°¡ ¾ø´Â °æ¿ì´Â ¿øÀÇ ¿¹¿Ü°¡ µË´Ï´Ù.
ÀÌ Â÷´ÜÁ¡¿¡¼´Â ÀÌ ¿¹¿ÜÀÇ ÀÌ Â÷´ÜÁ¡À¸·ÎºÎÅÍ ½Ã½ºÅÛ ¿¹¿Ü¸¦ Throw ÇÏ´Â °æ¿ì, ÁذÅÇϰí ÀÖ´Â ÀΟ¼¼ÇÁŸ´Â
ÀϺÎÀÇ Á¶°ÇÀÇ ¾Æ·¡¿¡¼´Â ¾î´À Á¤Ã¥°¡ À¯È¿ÇÏ°Ô µÇ¾î ÀÖÀ»±î¿¡ÀÇÇØ
ForwardRequest
¿¹¿Ü°¡ ¹ß»ýµÇ´Â °æ¿ìµµ ÀÖ½À´Ï´Ù. ÀÌ ¿¹¿Ü°¡ Throw µÇ¾úÀ» °æ¿ì, ´Ù¸¥ ÀΟ¼¼ÇÁŸÀÇ send_exception
¿ÀÆÛ·¹À̼ÇÀº ºÒ·Á°¡
Áö ¾Ê½À´Ï´Ù. ÇÃ·Î¿ì ½ºÅó»ÀÇ ³ª¸ÓÁöÀÇ ÀΟ¼¼ÇÁŸ°¡ Ç¥½ÃµÇ¾î ±×
receive_other
Â÷´ÜÁ¡ÀÌ È£ÃâÇÕ´Ï´Ù.
completion_status
°¡ COMPLETED_NO
ÀÎ °æ¿ì, ÀÌ Â÷´ÜÁ¡¿¡ ÀÇÇØ ForwardRequest
¿¹¿Ü°¡ ¹ß»ýµÇ´Â °ÍÀº ÀûÀýÇÏÁö´Â ¾Ê½À´Ï´Ù. ÀÌ ¿ä±¸ÀÇ ¡¸ÃÖ´ë·Î 1ȸ
¡¹¶ó°í ÇÏ´Â ½Ã¸àƽ½º°¡ ¾ø¾îÁý´Ï´Ù.
completion_status
½Ã¸àƽ½º¿¡ ¾ö¹ÐÇÏ°Ô µû¸¨´Ï´Ù. ¿øÀÇ ¿¹¿Ü°¡ ½Ã½ºÅÛ ¿¹¿ÜÀÎ °æ¿ì, »õ·Î¿î ¿¹¿ÜÀÇ completion_status
´Â ¿øÀÇ ¿¹¿ÜÀÇ ±×°Í°ú °°°Ô µË´Ï´Ù. ¿øÀÇ ¿¹¿Ü°¡ »ç¿ëÀÚ
¿¹¿ÜÀÎ °æ¿ì, »õ·Î¿î ¿¹¿ÜÀÇ completion_status
´Â COMPLETED_YES
°¡ µË´Ï´Ù.
COMM_FAILURE
µîÀÇ ¿¹¿Ü¿¡ ÀÇÇØ ¿ä±¸ÀÇ Àç½ÃÇàÀ» ÇÒ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. ÀÌ Àç½ÃÇàÀº ÀΟ¼¼ÇÁŸ¿¡ ´ëÇÑ »õ·Î¿î ¿ä±¸°¡ µË´Ï´Ù¸¸, ¿øÀÇ ¿ä±¸¿Í Àç½ÃÇà ¿ä±¸¿ÍÀÇ »çÀÌ¿¡´Â 1 °÷ »Ó »ó°ü°ü°è°¡ ÀÖ½À´Ï´Ù. Áï, Á¦¾î°¡ Ŭ¶óÀÌ¾ðÆ®¿¡ µ¹·ÁÁÖ°íÁöÁö ¾Ê¾Ò±â ¶§¹®¿¡
¿øÀÇ ¿ä±¸¿Í Àç½ÃÇà ¿ä±¸ÀÇ PortableInterceptor.Current
ÀÌ °°°Ô µË´Ï´Ù.
ri
- Â÷´ÜµÇ´Â ÇöÀçÀÇ ¿ä±¸¿¡ °üÇÑ Á¤º¸
ForwardRequest
- Throw µÇ¾úÀ» °æ¿ì´Â ¿¹¿Ü·Î °¡¸®Å°´Â »õ·Î¿î °´Ã¼¸¦ »ç¿ëÇØ ¿ä±¸ÀÇ Àç½ÃÇàÀ» ÇÏ´Â °ÍÀ» ORB¿¡ ÅëÁöÇÑ´Ù
void receive_other(ClientRequestInfo ri) throws ForwardRequest
LOCATION_FORWARD
»óŰ¡ ¼³Á¤µÈ GIOP ÀÀ´äÀÌ ¼ö½ÅµÇ¾úÀ» °æ¿ì µî). ºñµ¿±â È£Ãâ¿¡¼´Â ¿ä±¸ÀÇ Á÷ÈÄ¿¡ ÀÀ´äÀÌ µ¹·ÁÁÖ°íÁú °ÍÀº ¾ø½À´Ï´Ù¸¸, Á¦¾î´Â Ŭ¶óÀÌ¾ðÆ®¿¡ µ¹·ÁÁÖ°íÁ® Á¾·á Â÷´ÜÁ¡ÀÌ È£ÃâÇÕ´Ï´Ù.
Àç½ÃÇà¿¡¼´Â À¯È¿ÇÏ°Ô µÇ¾î ÀÖ´Â Á¤Ã¥¿¡ ÀÇÇØ Àç½ÃÇàÀÌ Áö½Ã¹Þ¾ÒÀ» ¶§¿¡ »õ·Î¿î ¿ä±¸°¡ °è¼ÓµÇ´Â °æ¿ì¿Í °è¼ÓµÇÁö ¾Ê´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. »õ·Î¿î ¿ä±¸°¡ °è¼ÓµÇ´Â °æ¿ì, ÀÌ ¿ä±¸´Â ÀΟ¼¼ÇÁŸ¿¡ ´ëÇÑ »õ·Î¿î ¿ä±¸°¡ µË´Ï´Ù¸¸, ¿øÀÇ ¿ä±¸¿Í Àç½ÃÇà ¿ä±¸¿ÍÀÇ »çÀÌ¿¡ 1 °÷ »Ó »ó°ü°ü°è°¡ ÀÖ½À´Ï´Ù. Áï, Á¦¾î°¡ Ŭ¶óÀÌ¾ðÆ®¿¡ µ¹·ÁÁÖ°íÁöÁö ¾Ê¾Ò±â ¶§¹®¿¡
¿øÀÇ ¿ä±¸¿Í Àç½ÃÇà ¿ä±¸ÀÇ ¾î´ÀÂÊÀ̳ª, ¿ä±¸ÀÇ ½ºÄÚÇÁ°¡ ÁöÁ¤µÈ PortableInterceptor.Current
ÀÌ °°°Ô µË´Ï´Ù.
ÀÌ Â÷´ÜÁ¡¿¡¼´Â ½Ã½ºÅÛ ¿¹¿Ü°¡ ¹ß»ýµÇ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. ÀÌ ¿¹¿Ü°¡ Throw µÇ¾úÀ» °æ¿ì, ´Ù¸¥ ÀΟ¼¼ÇÁŸÀÇ receive_other
¿ÀÆÛ·¹À̼ÇÀº ºÒ·Á°¡
Áö ¾Ê½À´Ï´Ù. ÇÃ·Î¿ì ½ºÅó»ÀÇ ³ª¸ÓÁöÀÇ ÀΟ¼¼ÇÁŸ°¡ Ç¥½ÃµÇ¾î ±× receive_exception
Â÷´ÜÁ¡ÀÌ È£ÃâÇÕ´Ï´Ù.
ÀÌ Â÷´ÜÁ¡¿¡¼´Â ForwardRequest
¿¹¿Ü°¡ ¹ß»ýµÇ´Â °æ¿ìµµ ÀÖ½À´Ï´Ù. ÀÌ ¿¹¿Ü°¡ Throw µÇ¾úÀ» °æ¿ì´Â ÈļÓÀÇ ÀΟ¼¼ÇÁŸÀÇ receive_other
¿ÀÆÛ·¹À̼ÇÀÌ ºÒ·Á°¡
ForwardRequest
¿¹¿Ü¿¡ ÀÇÇØ »õ·Î¿î Á¤º¸°¡ Á¦°øµË´Ï´Ù.
ÀÌ Â÷´ÜÁ¡À¸·ÎºÎÅÍ ½Ã½ºÅÛ ¿¹¿Ü¸¦ Throw ÇÏ´Â °æ¿ì, ÁذÅÇϰí ÀÖ´Â ÀΟ¼¼ÇÁŸ´Â completion_status
½Ã¸àƽ½º¿¡ ¾ö¹ÐÇÏ°Ô µû¸¨´Ï´Ù. completion_status
´Â COMPLETED_NO
°¡ µË´Ï´Ù. Ÿ°ÙÀÇ È£ÃâÀÌ ¿Ï·áÇϰí ÀÖ´Â °æ¿ì, ÀÌ Â÷´ÜÁ¡Àº ºÒ·Á°¡
Áö ¾Ê½À´Ï´Ù.
ri
- Â÷´ÜµÇ´Â ÇöÀçÀÇ ¿ä±¸¿¡ °üÇÑ Á¤º¸
ForwardRequest
- Throw µÇ¾úÀ» °æ¿ì´Â ¿¹¿Ü·Î °¡¸®Å°´Â »õ·Î¿î °´Ã¼¸¦ »ç¿ëÇØ ¿ä±¸ÀÇ Àç½ÃÇàÀ» ÇÏ´Â °ÍÀ» ORB¿¡ ÅëÁöÇÑ´Ù
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
ÀÌÀü Ŭ·¡½º ´ÙÀ½ Ŭ·¡½º | ÇÁ·¹ÀÓÀ¸·Î ÇÁ·¹ÀÓ ¾øÀÌ | |||||||||
°³¿ä: NESTED | Çʵå | »ý¼ºÀÚ | ¸Þ¼µå | »ó¼¼: Çʵå | »ý¼ºÀÚ | ¸Þ¼µå |
Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy µµ ÂüÁ¶ÇϽʽÿÀ.