2009-01-14 19 views
5

Tôi có dịch vụ cửa sổ được cài đặt bằng installutil và được đặt thành "Tự khởi động". Vấn đề của tôi là khi một số máy chủ được khởi động lại nó cố gắng để bắt đầu trước khi "Microsoft SQL dịch vụ" đã bắt đầu-tôi có thể thấy điều này bằng cách nhìn vào bản ghi sự kiện trong quá trình khởi động lại hệ thống. Cách tốt nhất để làm cho dịch vụ của tôi "tự động bắt đầu" SAU KHI dịch vụ máy chủ Sql đã bắt đầu là gì?Kiểm soát trình tự khởi động của dịch vụ cửa sổ

Tôi đang đùa giỡn với ý tưởng tạo bộ công việc SQL để bắt đầu khi "Tác nhân máy chủ SQL" khởi động để bắt đầu dịch vụ cửa sổ. Nhưng hy vọng, có một cách dễ dàng, hiệu quả để kiểm soát thứ tự các dịch vụ tự động khởi động.

Trả lời

5

Mỗi dịch vụ Windows có danh sách các dịch vụ khác tùy thuộc vào. Điều đó có nghĩa là nó sẽ đợi cho đến khi các phụ thuộc của nó đã bắt đầu trước khi nó sẽ bắt đầu, và nó sẽ bắt đầu cho bạn nếu chúng không được khởi động tự động khi bạn khởi động.

Nếu bạn đang tạo Dịch vụ Windows của bạn trong .NET, có một bài viết trên blog ở đây mà có thể hữu ích:

How to: Code Service Dependencies

Nếu không có một kb nhập Microsoft ở đây là chi tiết một cách để thêm phụ thuộc dịch vụ thông qua đăng ký:

How to delay loading of specific services

+0

Cảm ơn bạn. Điều đó làm việc tuyệt vời. Tôi đã thêm lớp trình cài đặt - đi đến các thuộc tính và thêm một sự phụ thuộc vào dịch vụ "MSSQLSERVER". Dường như làm việc. Tự hỏi liệu tên dịch vụ có giữ nguyên cho SQL server 2005, 2008 .. – Bijimon

+0

Điều gì sẽ xảy ra nếu người dùng muốn chạy SQL Server trên cụm chuyển đổi tập trung hoặc chỉ một hộp khác? – onupdatecascade

+0

@matthamilton liên kết hàng đầu bị hỏng –

2

Bạn có thể đặt các phụ thuộc giữa các dịch vụ.

See here:

2

Nếu bạn muốn làm điều này với một kịch bản hàng loạt rồi sau đây sẽ giúp

REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\%ServiceKey%" /v "DependOnService" /t REG_MULTI_SZ /d "Service Number 01\0Service Number 02"

này sử dụng reg.exesee here

2

Dependencies là hấp dẫn nhưng trong trường hợp của SQL Server có thể có hại cho việc thiết kế lâu dài của hệ thống của bạn. Hãy xem xét nếu ứng dụng của bạn được thành công và khách hàng của bạn muốn di chuyển đến một máy chủ SQL riêng biệt trên một hộp khác hoặc đến một cụm chuyển đổi dự phòng. Một thiết kế tốt hơn có thể là đặt một số logic thử lại/hết thời gian trong khi khởi động dịch vụ của bạn, để nó sẽ cố gắng liên lạc với SQL Server (thậm chí có thể trên một máy khác), chờ đợi, thử, sau đó thất bại một cách duyên dáng.

Các vấn đề liên quan