Kesalahan waktu tunggu

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Gejala

Deployment revisi proxy API melalui UI Edge atau API pengelolaan gagal dengan error waktu tunggu habis.

Pesan Error

Click to change deployment status. 
The revision is deployed and traffic can flow, but flow may be impaired. 
Error: Call timed out; either server is down or server is not reachable

Kemungkinan Penyebab

Penyebab umum untuk masalah ini adalah:

Cause Detail Untuk
Masalah Konektivitas Jaringan Kegagalan komunikasi antara Server Pengelolaan dan Pemroses Pesan karena masalah konektivitas jaringan atau aturan firewall. Khusus Pengguna Cloud Pribadi
Paket Proxy API Besar Pemroses Pesan mungkin membutuhkan waktu lama untuk diaktifkan jika paket proxy API berukuran besar, sehingga menyebabkan waktu tunggu RPC. Pengguna Cloud Pribadi dan Publik

Masalah Konektivitas Jaringan

Catatan: Hanya pengguna Edge Private Cloud yang dapat melakukan langkah-langkah berikut. Jika Anda menggunakan Edge Public Cloud, hubungi Dukungan Apigee Edge.

Diagnosis

  1. Dapatkan status deployment untuk API tertentu yang menunjukkan error dengan menggunakan panggilan Management API berikut:
    curl -v http://<management-server-IPaddress>:<port#>/organizations/<orgname>/environments/<envname>/apis/<apiname>/deployments -u <username>
    

    Contoh output yang menunjukkan error:

    { 
                    "error": "Call timed out; either server is down or server is not reachable", 
                    "status": "error", 
                    "type": [ 
                    "message-processor" 
                    ], 
                    "uUID": "ebbc1078-cbde-4a00-a7db-66a3c1b2b748" 
                    }, 
                    { 
                    "status": "deployed", 
                    "type": [ 
                    "message-processor" 
                    ], 
                    "uUID": "204e2b7e-52f7-46d9-b458-20f9bfb51e6d" 
                    }, 
                    { 
                    "status": "deployed", 
                    "type": [ 
                    "router" 
                    ], 
                    "uUID": "967e63c6-ee95-47c0-9608-f4a32638fb1e" 
                    }, 
                    { 
                    "status": "deployed", 
                    "type": [ 
                    "router" 
                    ], 
                    "state" : "error"
                    } 
    

    Contoh output di atas menunjukkan bahwa error terjadi pada salah satu Pemroses Pesan yang memiliki UUID "ebbc1078-cbde-4a00-a7db-66a3c1b2b748".

  2. Berdasarkan output status deployment untuk proxy API Anda, login ke setiap Pemroses Pesan dengan UUID terkait yang menunjukkan error dan lakukan langkah-langkah berikut:
    1. Periksa apakah Prosesor Pesan sedang memproses port 4528:
      netstat -an | grep LISTEN | grep 4528
      

      Jika Prosesor Pesan tidak memproses port 4528, mulai ulang Pemroses Pesan:

      /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
      
    2. Periksa kembali status deployment proxy API menggunakan panggilan API pengelolaan yang ditampilkan pada langkah #1 di atas. Jika tidak ada error, berarti masalah telah diselesaikan.
  3. Jika masalah berlanjut, uji konektivitas dari Server Pengelolaan ke Pemroses Pesan pada port 4528 menggunakan langkah-langkah berikut:
    1. Jika telnet tersedia, gunakan telnet:
      telnet <MessageProcessor_IP> 4528
      
    2. Jika telnet tidak tersedia, gunakan netcat untuk memeriksa konektivitas sebagai berikut:
      nc -vz <MessageProcessor_IP> 4528
      
    3. Jika Anda mendapatkan respons "Koneksi Ditolak" atau "Waktu koneksi habis", libatkan tim operasi jaringan Anda.
  4. Uji konektivitas dari Pemroses Pesan ke Server Pengelolaan pada port 4526 menggunakan langkah-langkah berikut:
    1. Jika telnet tersedia, gunakan telnet:
      telnet <management-server-IP> 4526
      
    2. Jika telnet tidak tersedia, gunakan netcat untuk memeriksa konektivitas sebagai berikut:
      nc -vz <management-server-IP> 4526 
      
    3. Jika Anda mendapatkan respons "Koneksi Ditolak" atau "Waktu tunggu koneksi habis", libatkan tim operasi jaringan Anda.
  5. Bekerja samalah dengan tim operasi jaringan Anda dan lakukan hal berikut:
    1. Pastikan protokol RPC diizinkan di Server Pengelolaan dan Pemroses Pesan.
    2. Hapus semua pembatasan firewall atau penyiapan aturan keamanan antara Server Pengelolaan dan Pemroses Pesan agar konektivitas ke port 4526 di server pengelolaan, dan konektivitas dari Server Pengelolaan ke Pemroses Pesan pada port 4528.
  6. Periksa kembali status deployment (lihat langkah #1 di atas). Jika Anda tidak melihat error, berarti error telah diselesaikan.
  7. Jika masalah berlanjut, periksa apakah ada masalah jaringan pada Pemroses Pesan. Jika ada masalah jaringan, memulai ulang Message Processor tertentu yang menampilkan error waktu tunggu (sesuai dengan output status deployment) dapat memperbaiki masalah tersebut:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  8. Jika masalah masih berlanjut, periksa log Server Pengelolaan di: (/opt/apigee/var/log/edge-management-server/logs/system.log).

    Error waktu tunggu contoh panggilan dari Log Server Pengelolaan habis

    2016-05-17 09:29:56,448 org:myorg env:prod qtp281969267-360792 ERROR DISTRIBUTION - RemoteServicesConfigEventHandler.configureServers() : exception for server with uuid e1381db7-d83b-4752-ae04-2de33f07e555 : cause = RPC Error 504: Call timed out communication error = true 
            com.apigee.rpc.RPCException: Call timed out 
            at com.apigee.rpc.impl.AbstractCallerImpl.handleTimeout(AbstractCallerImpl.java:64) ~[rpc-1.0.0.jar:na] 
            at com.apigee.rpc.impl.RPCMachineImpl$OutgoingCall.handleTimeout(RPCMachineImpl.java:483) ~[rpc-1.0.0.jar:na] 
            at com.apigee.rpc.impl.RPCMachineImpl$OutgoingCall.access$000(RPCMachineImpl.java:402) ~[rpc-1.0.0.jar:na] 
            at com.apigee.rpc.impl.RPCMachineImpl$OutgoingCall$1.run(RPCMachineImpl.java:437) ~[rpc-1.0.0.jar:na] 
            at io.netty.util.HashedWheelTimer$HashedWheelTimeout.expire(HashedWheelTimer.java:532) ~[netty-all-4.0.0.CR1.jar:na] 
            at io.netty.util.HashedWheelTimer$Worker.notifyExpiredTimeouts(HashedWheelTimer.java:430) ~[netty-all-4.0.0.CR1.jar:na] 
            at io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:371) ~[netty-all-4.0.0.CR1.jar:na] 
            at java.lang.Thread.run(Thread.java:745) ~[na:1.7.0_79] 
            
    

    Jika Anda melihat error serupa seperti ditunjukkan pada contoh di atas, tingkatkan waktu tunggu RPC di Server Pengelolaan sehingga jika terjadi pelambatan jaringan, sebaiknya berikan waktu bagi Server Pengelolaan untuk terhubung ke Pemroses Pesan.

Resolusi

Catatan: Hanya pengguna Edge Private Cloud yang dapat melakukan langkah-langkah berikut. Jika Anda menggunakan Edge Public Cloud, hubungi Dukungan Apigee Edge.

  1. Lakukan langkah-langkah berikut untuk meningkatkan waktu tunggu RPC:
    1. Buat file /opt/apigee/customer/application/management-server.properties mesin Server Pengelolaan, jika belum ada.
    2. Tambahkan baris berikut ke dalam file ini:
      conf_cluster_rpc.connect.timeout=<time in seconds>
      

      Nilai waktu tunggu RPC default adalah 10 dan sebaiknya tingkatkan menjadi 40 detik. Setel sebagai berikut:

      conf_cluster_rpc.connect.timeout=40
      
    3. Pastikan file ini dimiliki oleh apigee:
      chown apigee:apigee /opt/apigee/customer/application/management-server.properties
      
    4. Mulai ulang Server Pengelolaan:
      /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
      
    5. Jika Anda memiliki lebih dari satu Server Pengelolaan, ulangi langkah-langkah di atas pada semua Server Pengelolaan.
    6. Deploy proxy API di UI Edge atau dengan menggunakan panggilan API pengelolaan Edge. Jika proxy API di-deploy tanpa masalah, berarti masalah telah terselesaikan.
  2. Jika masalah berlanjut, kumpulkan perintah tcpdump dari Server Pengelolaan dan Pemroses Pesan. Aktifkan perintah tcpdump di setiap server, lalu mulai deployment Proxy API dari UI atau menggunakan API pengelolaan:
    1. Jalankan perintah tcpdump di bawah dari Server Pengelolaan:
      tcpdump -i any -s 0 host <message-processor-IP address> -w <File name>
      
    2. Jalankan perintah tcpdump di bawah dari Message Processor:
      tcpdump -i any -s 0 host <management-server-IP address> -w <File name>
      
    3. Hubungi Dukungan Apigee Edge untuk mendapatkan bantuan terkait menganalisis tcpdumps dan memecahkan masalah lebih lanjut.

Paket Proxy API Besar

Diagnosis

  1. Periksa ukuran paket proxy API yang error deployment-nya diamati.
  2. Jika ukurannya cukup besar (10 MB atau lebih), kemungkinan besar Message Processor memerlukan waktu lebih lama untuk mengaktifkan proxy API.
  3. Jika ukuran paket Proxy API lebih besar dari 15 MB, lanjutkan ke Paket Proxy API yang lebih besar dari 15 MB.

Resolusi

Catatan: Hanya pengguna Edge Private Cloud yang dapat melakukan langkah-langkah berikut. Jika Anda menggunakan Edge Public Cloud, hubungi Dukungan Apigee Edge.

Tingkatkan waktu tunggu RPC di Server Pengelolaan sehingga Pemroses Pesan memiliki cukup waktu untuk mengaktifkan paket proxy API yang besar. Lakukan langkah-langkah berikut untuk meningkatkan nilai waktu tunggu RPC:

  1. Buat file /opt/apigee/customer/application/management-server.properties di komputer Server Pengelolaan, jika belum ada.
  2. Tambahkan baris berikut ke file ini:
    conf_cluster_rpc.connect.timeout=<time in seconds>
    

    Nilai waktu tunggu RPC default adalah 10 dan sebaiknya tingkatkan menjadi 40 detik. Setel sebagai berikut:

    conf_cluster_rpc.connect.timeout=40
    
  3. Pastikan file ini dimiliki oleh apigee:
    chown apigee:apigee /opt/apigee/customer/application/management-server.properties
    
  4. Mulai ulang Server Pengelolaan:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
    
  5. Jika Anda memiliki lebih dari satu Server Pengelolaan, ulangi langkah-langkah di atas pada semua Server Pengelolaan.

Jika masalah berlanjut, hubungi Dukungan Apigee Edge untuk mendapatkan bantuan lebih lanjut.