Saya membuat manifes layanan untuk MySQL dan layanan WebLogic yang bergantung pada layanan MySQL. Saya ingin semuanya menggunakan model manajemen "tunggu" (jalankan proses di latar depan). Saya memiliki beberapa pertanyaan tentang penyiapan ini.
Pertama, bagaimana cara menentukan status layanan? Misalnya, ketika saya membuat skrip MySQL sebelum menggunakan layanan, setelah meluncurkan mysqld_safe
skrip di latar belakang, saya akan melakukan ping sampai saya mendapat tanggapan; Saya ingin memastikan sudah siap sebelum melanjutkan. Sekarang dengan layanan ini, ia langsung "online" meskipun saya tidak yakin apakah itu benar-benar siap atau tidak.
Jika tidak ada solusi yang baik untuk pertanyaan itu, saya menempatkan ping DB MySQL di skrip WebLogic itu sendiri, dan keluar dengan status 1 setelah sejumlah upaya. Namun, layanan akan terus dimulai ulang. Bagaimana cara memaksa layanan masuk ke mode pemeliharaan setelah keluar bukan nol?
Akhirnya, saya mendapatkan dependensi yang berfungsi sejauh layanan WebLogic tidak akan dimulai tanpa layanan MySQL online, tetapi saya memiliki dua pertanyaan mengenai hal ini:
- Bagaimana cara membuat layanan WebLogic mencoba memulai layanan MySQL saat sedang down?
- Bila layanan WebLogic sudah online, bagaimana cara membuatnya agar down jika layanan MySQL pernah down?
Jawaban yang Diterima:
1 – Tentukan layanan mysql sebagai layanan ketergantungan saat mengonfigurasi manifes xml untuk layanan weblogic. Dengan cara ini, weblogic Anda tidak akan dimulai selama layanan mysql tidak dilaporkan sepenuhnya online. Ini tampaknya logis, karena aplikasi weblogic Anda akan bergantung pada ketersediaan layanan mysql, aplikasi ini tidak akan melakukan upaya yang tidak perlu untuk db connect/eksekusi pernyataan sql ketika layanan mysql db sedang down.
2 – Karena layanan ketergantungan menjadi offline/terdegradasi, layanan weblogic Anda juga akan offline dan tidak akan berjalan. Jadi tidak ada kesempatan bagi layanan weblogic untuk mencoba membuat layanan mysql kembali online selagi ada kesempatan, karena layanan itu sendiri sedang dalam mode pemeliharaan. Lebih dari itu, tidak ada jaminan untuk weblogic untuk memulai setelah itu karena layanan mysql masuk ke mode pemeliharaan/offline/terdegradasi, smf akan menandai layanan weblogic juga terdegradasi/offline dan karenanya tidak dapat digunakan untuk memulai layanan mysql. Ini bisa menjadi kasus ketergantungan siklus yang jelas, yang harus diselesaikan, dengan menggunakan layanan modul/cronjob/transient ketiga untuk menangani kedua layanan ini.
Terkait:Bagaimana cara memeriksa sinyal apa yang sedang didengarkan oleh suatu proses?Sekarang jelas bahwa layanan ketergantungan utama adalah mysql untuk dijalankan online hampir sepanjang waktu untuk ketersediaan dan fungsi weblogic yang bersih, saya akan menyarankan untuk menggunakan modul/skrip ketiga (seperti yang akan dilakukan oleh cronjob) yang akan memantau status layanan mysql sebagai prioritas pilihan dan kemudian layanan weblogic. Itu harus menangani penanganan/eksekusi perintah penyembuhan SMF jika salah satu layanan turun.