【问题标题】:Oracle Application Server 10gOracle 应用服务器 10g
【发布时间】:2018-11-28 17:45:09
【问题描述】:

我需要在 Oracle 应用服务器上配置一项服务来测试与数据库的连接性,然后发送有关状态的电子邮件通知。谁能帮助我。

谢谢,

【问题讨论】:

    标签: oracle10g oracle-application-server


    【解决方案1】:

    这里有一个选项:

    • 您感兴趣的 TNSPING 数据库
    • 评估结果(你对最后一行感兴趣)
    • 通过电子邮件发送结果

    几点说明:

    • tnsping %1 > ping_result.txt ping 数据库作为参数 (%1) 传递并将结果存储到 .txt 文件中
    • 脚本的中间部分是由@Aacini 编写的修改代码(您会看到一个链接)
    • 最后,邮件结果由bmail 完成(您可以使用任何其他命令行 SMTP 邮件程序;或者,Google 的“bmail 下载” - 它是免费的)

    给你

    rem PING_DB.BAT
    
    @echo off
    setlocal EnableDelayedExpansion
    
    tnsping %1 > ping_result.txt
    
    rem Littlefoot slightly adjusted code: https://stackoverflow.com/questions/27416341/how-can-i-read-the-last-2-lines-of-a-file-in-batch-script
    rem Tail command in pure Batch, version 2: Tail.bat filename numOfLines
    rem Antonio Perez Ayala
    
    set /A firstTail=1, lastTail=0
    for /F "delims=" %%a in (ping_result.txt) do (
       set /A lastTail+=1, lines=lastTail-firstTail+1
       set "lastLine[!lastTail!]=%%a"
       if !lines! gtr 1 (
          set "lastLine[!firstTail!]="
          set /A firstTail+=1
       )
    )
    for /L %%i in (%firstTail%,1,%lastTail%) do set result=!lastLine[%%i]!
    
    rem end of LF's adjustment
    
    echo %result%
    
    echo off
    bmail -s smtp.server.name -f tnspinger@me.com -t my_real_mail@gmail.com -a "%result%" -c
    

    bmail的选项:

    Command Line SMTP Emailer V1.07
    Copyright(C) 2002-2004 Craig.Peacock@beyondlogic.org
    Date: Wed, 20 Jun 2018 10:08:15 +0200
    Usage: bmail [options]
            -s    SMTP Server Name
            -p    SMTP Port Number (optional, defaults to 25)
            -t    To: Address
            -f    From: Address
            -b    Text Body of Message (optional)
            -h    Generate Headers
            -a    Subject (optional)
            -m    Filename (optional) Use file as Body of Message
            -c    Prefix above file with CR/LF to separate body from header
            -d    Debug (Show all mail server communications)
    

    测试(我已经删除了 bmail 的输出):

    M:\>ping_db xe
    TNS-12541: TNS:no listener     --> this is being sent by e-mail
    
    M:\>ping_db orcl
    OK (10 msec)                   --> this is being sent by e-mail
    

    【讨论】:

    • 感谢您对此进行调查。我是新学生,所以你能详细说明一下我该怎么做。感谢你的帮助。我的数据库是 sqlserver。
    • 我想说的都说了。我不知道你期待什么样的阐述;我相信我提供的示例和解释已经足够了,特别是如果您的数据库是 MS SQL Server,而问题被标记为 Oracle。下定决心。
    • 非常感谢您的帮助。这是我的错误,我用 Oracle 标记了帖子。我应该用 SQL server 标记它。
    • 所有其他事情我都清楚,只需要一个帮助,对于 TNSPING 数据库,我不清楚如何从 TNSPING ping sql server 数据库?有什么帮助吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    • 2010-10-02
    • 2012-05-12
    • 2010-11-05
    相关资源
    最近更新 更多