מוצג המסמך של Apigee Edge.
עוברים אל
מסמכי תיעוד של Apigee X. מידע
InvalidProtocol
הודעת שגיאה
הפריסה של שרת proxy ל-API דרך ממשק המשתמש של Edge או Edge Management API נכשלה ומופיעה הודעת השגיאה הבאה:
Error Saving Revision revision_number Invalid Protocol: invalid_protocol for Syslog handler in policy policy_name.
הודעת שגיאה לדוגמה
Error Saving Revision 4
Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
צילום מסך לדוגמה

הסיבה
הפריסה של מדיניות מדיניות MessageLogging עלולה להיכשל עם השגיאה הזו, אם הפרוטוקול שצוין ברכיב <Protocol> אינו חוקי. הפרוטוקולים החוקיים הם TCP ו-UDP. לשליחת הודעות Syslog באמצעות TLS/SSL, יש תמיכה רק ב-TCP.
לדוגמה, הפריסה של שרת ה-proxy ל-API נכשלת עם השגיאה הזו אם מציינים HTTP ברכיב <Protocol> של מדיניות MessageLogging באופן הבא:
<Protocol>HTTP</Protocol>
אבחון
מזהים את מדיניות MessageLogging שבה אירעה השגיאה. המידע הזה מופיע בהודעת השגיאה. לדוגמה, בשגיאה הבאה, שם המדיניות הוא
LogToSyslog:.Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.בהגדרה של מדיניות MessageLogging שנכשלה, בודקים אם הפרוטוקול שצוין ברכיב
<Protocol>חוקי. אם צוין פרוטוקול לא חוקי, זו הסיבה לשגיאה.לדוגמה, המדיניות הבאה מציינת פרוטוקול לא חוקי.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <MessageLogging name="LogToSyslog"> <Syslog> <Message>[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"] Weather request for WOEID {request.queryparam.w}.</Message> <Host>logs-01.loggly.com</Host> <Port>514</Port> <Protocol>HTTP</Protocol> <FormatMessage>true</FormatMessage> </Syslog> <logLevel>ALERT</logLevel> </MessageLogging>מכיוון שהפרוטוקול שהוגדר ברכיב
<Protocol>אינו חוקי, הפריסה של שרת ה-proxy ל-API נכשלה ומוצגת השגיאה:Invalid Protocol: HTTP for Syslog handler in policy LogToSyslog.
רזולוציה
חשוב לוודא שהפרוטוקול שהוגדר ברכיב <Protocol> של מדיניות MessageLogging תקין. <Protocol>
הרכיב תומך בערכים הבאים:
- TCP
- UDP
כדי לתקן את הדוגמה שלמעלה, מגדירים פרוטוקול חוקי בתוך הרכיב <Protocol>:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MessageLogging name="LogToSyslog">
<Syslog>
<Message>[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"] Weather request for WOEID {request.queryparam.w}.</Message>
<Host>logs-01.loggly.com</Host>
<Port>514</Port>
<Protocol>TCP</Protocol>
<FormatMessage>true</FormatMessage>
</Syslog>
<logLevel>ALERT</logLevel>
</MessageLogging>
InvalidPort
הודעת שגיאה
הפריסה של שרת proxy ל-API דרך ממשק המשתמש של Edge או Edge Management API נכשלה ומופיעה הודעת השגיאה הבאה:
Error Saving Revision revision_number Invalid Port: 0 for Syslog handler in policy policy_name.
הודעת שגיאה לדוגמה
Error Saving Revision 4
Invalid Port: 0 for Syslog handler in policy LogToSyslog.
צילום מסך לדוגמה

סיבה
הפריסה של מדיניות MessageLogging עלולה להיכשל עם השגיאה הזו אם מספר היציאה לא צוין ברכיב <Port> או אם הוא אינו חוקי. מספר היציאה חייב להיות מספר שלם שגדול מאפס.
לדוגמה, אם הוצהר על הרכיב <Port> כמו שמוצג בהמשך, הפריסה של שרת ה-proxy ל-API נכשלת:
<Port>0</Port>
אבחון
מזהים את מדיניות MessageLogging שבה אירעה השגיאה. אפשר למצוא את המידע הזה בהודעת השגיאה. לדוגמה, בשגיאה הבאה, שם המדיניות הוא
LogToSyslog:.Invalid Port: 0 for Syslog handler in policy LogToSyslog.במדיניות של MessageLogging שנכשלה, בודקים אם צוין מספר יציאה חוקי ברכיב
<Port>. אם מספר היציאה לא מוגדר או שאינו חוקי, זו הסיבה לשגיאה.לדוגמה, המדיניות הבאה מציינת מספר יציאה לא חוקי:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <MessageLogging name="LogToSyslog"> <Syslog> <Message>[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"] Weather request for WOEID {request.queryparam.w}.</Message> <Host>logs-01.loggly.com</Host> <Port>0</Port> <Protocol>TCP</Protocol> <FormatMessage>true</FormatMessage> </Syslog> <logLevel>ALERT</logLevel> </MessageLogging>מספר היציאה שמוגדר ברכיב
<Port>לא תקין, ולכן הפריסה של שרת ה-proxy ל-API נכשלה ומוצגת השגיאה:Invalid Port: 0 for Syslog handler in policy LogToSyslog.
רזולוציה
יש לוודא שמספר יציאה מוגדר ברכיב <Port> של מדיניות MessageLogging. הערך צריך להיות מספר שלם שגדול מאפס.
כדי לתקן את הדוגמה שלמעלה, צריך להגדיר מספר יציאה חוקי בתוך הרכיב <Protocol>.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MessageLogging name="LogToSyslog">
<Syslog>
<Message>[3f509b58 tag="{organization.name}.{apiproxy.name}.{environment.name}"] Weather request for WOEID {request.queryparam.w}.</Message>
<Host>logs-01.loggly.com</Host>
<Port>514</Port>
<Protocol>TCP</Protocol>
<FormatMessage>true</FormatMessage>
</Syslog>
<logLevel>ALERT</logLevel>
</MessageLogging>