国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

Windows服務(wù):方便地啟動(dòng)Oracle服務(wù)

2024-08-29 13:35:27
字體:
供稿:網(wǎng)友
    Oracle 9i有多個(gè)系統(tǒng)服務(wù)必須都啟動(dòng)之后才能正常工作,但逐個(gè)啟動(dòng)比較費(fèi)事,多數(shù)學(xué)習(xí)Oracle但機(jī)器又不是太好的朋友也不能容忍每次都自動(dòng)啟動(dòng)Oracle服務(wù)(那樣512MB的內(nèi)存在啟動(dòng)時(shí)就所剩無幾了),所以通常都是要用了再啟動(dòng), 這里給出了批量啟動(dòng)windows系統(tǒng)服務(wù)的一個(gè)例子,介紹了操控windows系統(tǒng)服務(wù)的技巧:

首先新建一個(gè)Windows application工程,取名為Oracle Starter
粘貼如下代碼文件:
Form1.Designer.vb
Partial Public Class Form1
    Inherits System.Windows.Forms.Form     <System.Diagnostics.DebuggerNonUserCode()> _
    Public Sub New()
        MyBase.New()        ''''This call is required by the Windows Form Designer.
        InitializeComponent()    End Sub    ''''Form overrides dispose to clean up the component list.
    <System.Diagnostics.DebuggerNonUserCode()> _
    PRotected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing AndAlso components IsNot Nothing Then
            components.Dispose()
        End If
        MyBase.Dispose(disposing)
    End Sub    ''''Required by the Windows Form Designer
    Private components As System.ComponentModel.IContainer    ''''NOTE: The following procedure is required by the Windows Form Designer
    ''''It can be modified using the Windows Form Designer. 
    ''''Do not modify it using the code editor.
    <System.Diagnostics.DebuggerStepThrough()> _
    Private Sub InitializeComponent()
        Me.Label1 = New System.Windows.Forms.Label
        Me.ListBox1 = New System.Windows.Forms.ListBox
        Me.Button1 = New System.Windows.Forms.Button
        Me.Button2 = New System.Windows.Forms.Button
        Me.SuspendLayout()
        ''''
        ''''Label1
        ''''
        Me.Label1.AutoSize = True
        Me.Label1.Font = New System.Drawing.Font("Tahoma", 12.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.Label1.Location = New System.Drawing.Point(13, 13)
        Me.Label1.Name = "Label1"
        Me.Label1.Size = New System.Drawing.Size(122, 22)
        Me.Label1.TabIndex = 0
        Me.Label1.Text = "Oracle Starter"
        ''''
        ''''ListBox1
        ''''
        Me.ListBox1.Font = New System.Drawing.Font("Tahoma", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.ListBox1.FormattingEnabled = True
        Me.ListBox1.ItemHeight = 19
        Me.ListBox1.Location = New System.Drawing.Point(13, 75)
        Me.ListBox1.Name = "ListBox1"
        Me.ListBox1.Size = New System.Drawing.Size(436, 175)
        Me.ListBox1.TabIndex = 1
        ''''
        ''''Button1
        ''''
        Me.Button1.Location = New System.Drawing.Point(322, 257)
        Me.Button1.Name = "Button1"
        Me.Button1.Size = New System.Drawing.Size(127, 34)
        Me.Button1.TabIndex = 2
        Me.Button1.Text = "Stop all services"
        ''''
        ''''Button2
        ''''
        Me.Button2.Location = New System.Drawing.Point(188, 258)
        Me.Button2.Name = "Button2"
        Me.Button2.Size = New System.Drawing.Size(127, 34)
        Me.Button2.TabIndex = 3
        Me.Button2.Text = "Start all servies"
        ''''
        ''''Form1
        ''''
        Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
        Me.ClientSize = New System.Drawing.Size(461, 304)
        Me.Controls.Add(Me.Button2)
        Me.Controls.Add(Me.Button1)
        Me.Controls.Add(Me.ListBox1)
        Me.Controls.Add(Me.Label1)
        Me.Name = "Form1"
        Me.Text = "Oracle Starter"
        Me.ResumeLayout(False)
        Me.PerformLayout()
    End Sub
    Friend WithEvents Label1 As System.Windows.Forms.Label
    Friend WithEvents ListBox1 As System.Windows.Forms.ListBox
    Friend WithEvents Button1 As System.Windows.Forms.Button
    Friend WithEvents Button2 As System.Windows.Forms.ButtonEnd Class
Form1.vb

Imports System.ServiceProcess
Imports System.Threading Public Class Form1    ''''Private procName As String
    Private procArray(5) As String     Private Sub Form1_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated    End Sub
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        procArray(0) = "OracleMTSRecoveryService"
        procArray(1) = "OracleOraHome92Agent"
        procArray(2) = "OracleOraHome92TNSListener"
        procArray(3) = "OracleServiceSFSVDB"
        procArray(4) = "OracleOraHome92HTTPServer"
    End Sub
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim backThread As Thread
        Dim i As Int16
        For i = 0 To 4
            backThread = New Thread(AddressOf procClass.StopProc)
            backThread.IsBackground = True
            procClass.procName = procArray(i)
            Label1.Text = "Stopping service: " + procClass.procName + " ..."
            Me.Refresh()
            backThread.Start()
            backThread.Join()
            ListBox1.Items.Add("Service: " + procClass.procName + " Stopped")
            Me.Refresh()
            backThread = Nothing
        Next
        Label1.Text = "All services stopped"
    End Sub
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim backThread As Thread
        Dim i As Int16
        For i = 0 To 4
            backThread = New Thread(AddressOf procClass.StartProc)
            procClass.procName = procArray(i)
            Label1.Text = "Starting service: " + procClass.procName + " ..."
            Me.Refresh()
            backThread.Start()
            backThread.Join()
            ListBox1.Items.Add("Service: " + procClass.procName + " Started")
            Me.Refresh()
            backThread = Nothing
        Next
        Label1.Text = "All services started"
    End Sub    Public Class procClass
        Public Shared procName As String        Public Shared Sub StopProc()
            Dim servController1 As ServiceController = New ServiceController(procName)
            If servController1.Status = ServiceControllerStatus.Stopped Then
            ElseIf servController1.Status = ServiceControllerStatus.Paused Then
                servController1.Stop()
                servController1.WaitForStatus(ServiceControllerStatus.Stopped)
            ElseIf servController1.Status = ServiceControllerStatus.Running Then
                servController1.Stop()
                servController1.WaitForStatus(ServiceControllerStatus.Stopped)
            End If
        End Sub        Public Shared Sub StartProc()
            Dim servController1 As ServiceController = New ServiceController(procName)
            If servController1.Status = ServiceControllerStatus.Running Then
            ElseIf servController1.Status = ServiceControllerStatus.Paused Then
                servController1.Continue()
                servController1.WaitForStatus(ServiceControllerStatus.Running)
            ElseIf servController1.Status = ServiceControllerStatus.Stopped Then
                servController1.Start()
                servController1.WaitForStatus(ServiceControllerStatus.Running)
            End If
        End Sub
    End Class
End Class

總結(jié):
這個(gè)實(shí)例只是運(yùn)用了系統(tǒng)服務(wù)控制的基本功能,高級(jí)功能還不甚了解,對(duì)于多線程的運(yùn)用還不是很明確,望大家指正

改進(jìn):
程序在運(yùn)行時(shí)假如焦點(diǎn)離開,用戶界面便會(huì)鎖死,雖然嘗試了多線程,仍然不理想,應(yīng)該還Join()方法有關(guān),多次修正未果,請(qǐng)高手指點(diǎn),謝謝!


測(cè)試平臺(tái):
Windows Server 2003,Visual VB.NET 2005 Beta 1

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 铜川市| 徐闻县| 北海市| 金昌市| 温宿县| 邛崃市| 阜新市| 玉山县| 桂林市| 大荔县| 斗六市| 浪卡子县| 司法| 上思县| 丰原市| 胶州市| 东光县| 遂昌县| 雷波县| 潮安县| 玉树县| 厦门市| 连平县| 洛浦县| 徐水县| 平遥县| 巩留县| 柯坪县| 息烽县| 贵阳市| 阿克| 陇南市| 谢通门县| 武冈市| 中超| 天水市| 蒙阴县| 仁寿县| 大渡口区| 宜都市| 土默特右旗|