Kesalahan waktu tunggu

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

ini.

Gejala

Deployment revisi proxy API melalui UI Edge atau API pengelolaan gagal dengan waktu tunggu {i>error<i}.

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 jaringan masalah konektivitas atau aturan {i>firewall<i}. Khusus Pengguna Private Cloud
Paket Proxy API Besar Pemroses Pesan mungkin membutuhkan waktu lama untuk aktif jika paket proxy API berukuran besar yang besar, yang menyebabkan waktu tunggu RPC habis. Pengguna Cloud Pribadi dan Publik

Masalah Konektivitas Jaringan

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

Diagnosis

  1. Dapatkan status deployment untuk API tertentu yang menampilkan error menggunakan panggilan API pengelolaan:
    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 memiliki UUID "ebbc1078-cbde-4a00-a7db-66a3c1b2b748".

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

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

      /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
      
    2. Periksa ulang 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 Pesan Prosesor di 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 menerima respons "Koneksi Ditolak" atau "Waktu koneksi habis", lalu lakukan interaksi tim operasi jaringan Anda.
  4. Menguji konektivitas dari Pemroses Pesan ke Server Pengelolaan di 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 menerima respons "Koneksi Ditolak" atau "Waktu koneksi habis", libatkan oleh tim operasi jaringan.
  5. Bekerja samalah dengan tim operasi jaringan Anda dan lakukan hal berikut:
    1. Pastikan protokol RPC diizinkan di Server Pengelolaan dan Pesan Pemroses.
    2. Hapus semua pembatasan firewall atau penyiapan aturan keamanan antara Server Pengelolaan dan Prosesor Pesan untuk mengizinkan konektivitas ke porta 4526 pada server pengelolaan, dan konektivitas dari {i>Management Server<i} ke Pemroses Pesan di porta 4528.
  6. Periksa kembali status deployment (lihat langkah #1 di atas). Jika Anda tidak melihat error apa pun, hal itu menunjukkan bahwa kesalahan telah diselesaikan.
  7. Jika masalah berlanjut, periksa apakah ada masalah jaringan pada Pemroses Pesan. Jika ada masalah jaringan, memulai ulang Pemroses Pesan tertentu yang menunjukkan kesalahan waktu tunggu (sesuai dengan output status deployment) dapat memperbaiki masalah:
    /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).

    Contoh error waktu Panggilan habis dari Log Server Pengelolaan

    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 yang ditunjukkan dalam contoh di atas, tingkatkan RPC di Server Pengelolaan, sehingga jika terjadi perlambatan jaringan, maka server akan waktu bagi Server Pengelolaan untuk terhubung ke Pemroses Pesan.

Resolusi

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

  1. Lakukan langkah-langkah berikut untuk meningkatkan waktu tunggu RPC:
    1. Membuat file /opt/apigee/customer/application/management-server.properties Manajemen Komputer server, 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 disarankan untuk meningkatkannya menjadi 40 detik. Atur seperti 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, artinya hal itu menunjukkan bahwa masalah telah diselesaikan.
  2. Jika masalah masih berlanjut, kumpulkan tcpdump dari Management Server dan Message Processor. Mengaktifkan tcpdump perintah di setiap server lalu memulai deployment Proxy API dari UI atau menggunakan API pengelolaan:
    1. Jalankan perintah tcpdump di bawah ini dari Server Pengelolaan:
      tcpdump -i any -s 0 host <message-processor-IP address> -w <File name>
      
    2. Jalankan perintah tcpdump di bawah ini 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 {i>tcpdump<i} dan untuk memecahkan masalah lebih lanjut.

Besar Paket Proxy API

Diagnosis

  1. Memeriksa ukuran paket proxy API yang mengalami error deployment diamati.
  2. Jika ukurannya cukup besar (10 MB atau lebih tinggi), maka kemungkinan besar pesan Pemroses mungkin memerlukan lebih banyak waktu untuk mengaktifkan proxy API.
  3. Jika ukuran paket Proxy API lebih besar dari 15 MB, lanjutkan ke Paket Proxy API lebih besar dari 15 MB.

Resolusi

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

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

  1. Membuat file /opt/apigee/customer/application/management-server.properties di komputer Management Server, 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 disarankan untuk meningkatkannya menjadi 40 detik. Atur seperti 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 Server.

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