2009年10月23日金曜日

groovyでSQL Serverのバージョン、プロセッサアーキテクチャ、ビルド日、OSを取得する

groovyでSQL Serverのバージョン、プロセッサアーキテクチャ、ビルド日、OSを取得するには、以下のコードを実行します。


import groovy.sql.Sql

sql = Sql.newInstance(
"jdbc:sqlserver://localhost;databaseName=test1",
"sa",
"sa",
"com.microsoft.sqlserver.jdbc.SQLServerDriver")

query = """
select @@version as ver
"""
sql.eachRow(query){
// SQL Serverのバージョン、プロセッサアーキテクチャ、ビルド日、OS
println("ver:${it.ver}")
println "----"
}


動作環境
Groovy 1.6.3, JDK6 Update14, SQL Server JDBC Driver 2.0,
SQL Server 2008 Express

関連情報
@@VERSION (Transact-SQL)
http://msdn.microsoft.com/ja-jp/library/ms177512.aspx

2009年10月22日木曜日

groovyとSQL Serverで現在のログインユーザ名とデータベースユーザ名を取得する

groovyとSQL Serverで現在のログインユーザ名とデータベースユーザ名を取得するには、以下のコードを実行します。


import groovy.sql.Sql

sql = Sql.newInstance(
"jdbc:sqlserver://localhost;databaseName=test1",
"sa",
"sa",
"com.microsoft.sqlserver.jdbc.SQLServerDriver")

query = """
select system_user as su, user as du
"""
sql.eachRow(query){
// ログインユーザ名
println("su:${it.su}")
// データベースユーザ名
println("du:${it.du}")
println "----"
}


動作環境
Groovy 1.6.3, JDK6 Update14, SQL Server JDBC Driver 2.0,
SQL Server 2008 Express

関連情報
USER (Transact-SQL)
http://msdn.microsoft.com/ja-jp/library/ms186738.aspx

2009年10月21日水曜日

groovyとSQL Serverで接続しているデータベース名を取得する

groovyとSQL Serverで接続しているデータベース名を取得するには、以下のコードを実行します。


import groovy.sql.Sql

sql = Sql.newInstance(
"jdbc:sqlserver://localhost;databaseName=test1",
"sa",
"sa",
"com.microsoft.sqlserver.jdbc.SQLServerDriver")

query = """select
db_name() as dbname
"""

sql.eachRow(query){
// 接続しているデータベース名
println("dbname:${it.dbname}")
println "----"
}


動作環境
Groovy 1.6.3, JDK6 Update14, SQL Server JDBC Driver 2.0,
SQL Server 2008 Express

関連情報
DB_NAME (Transact-SQL)
http://msdn.microsoft.com/ja-jp/library/ms189753.aspx

2009年10月20日火曜日

groovyとPostgreSQLでサーバー開始時間とバージョンを取得する

groovyとPostgreSQLでサーバー開始時間とバージョンを取得するには、以下のコードを実行します。


import groovy.sql.Sql

sql = Sql.newInstance(
"jdbc:postgresql://localhost:5432/jtrac",
"postgres",
"postgres",
"org.postgresql.Driver")

query = """select
pg_postmaster_start_time() as st,
version() as ver
"""

sql.eachRow(query){
// サーバー開始時間
println "st:${it.st}"
// PostgreSQLのversion
println "ver:${it.ver}"
println "----"
}


動作環境
Groovy 1.6.3, JDK6 Update16, Postgres 8.4.0,
8.4-701JDBC4

関連情報
pg_postmaster_start_time(), version()
http://www.postgresql.org/docs/8.4/interactive/functions-info.html

2009年10月19日月曜日

groovyとPostgreSQLとquartzの組み合わせでトリガーグループを一覧表示する

groovyとPostgreSQLとquartzの組み合わせでトリガーグループを一覧表示するには、以下のコードを実行します。


import org.quartz.*
import org.quartz.impl.*

// スケジューラ取得
//sf = new StdSchedulerFactory()
sf = new StdSchedulerFactory("./myquartz.properties")
sched = sf.getScheduler()

// トリガーグループ名を列挙
trgGroupNames = sched.getTriggerGroupNames()
println("total number of trigger group names:" + trgGroupNames.length)
for( trgGroupName in trgGroupNames ){
println("trigger group name:" + trgGroupName)
}

sched.shutdown(true)


設定ファイル(myquartz.properties)

org.quartz.scheduler.instanceName = DefaultQuartzScheduler
org.quartz.scheduler.rmi.export = false
org.quartz.scheduler.rmi.proxy = false
org.quartz.scheduler.wrapJobExecutionInUserTransaction = false

org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 10
org.quartz.threadPool.threadPriority = 5
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true

org.quartz.jobStore.misfireThreshold = 60000

#org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX

# データソースの設定
org.quartz.dataSource.QuartzDS.driver = org.postgresql.Driver
org.quartz.dataSource.QuartzDS.URL = jdbc:postgresql://localhost:5432/quartz
org.quartz.dataSource.QuartzDS.user = postgres
org.quartz.dataSource.QuartzDS.password = postgres
org.quartz.dataSource.QuartzDS.maxConnections = 10
org.quartz.dataSource.QuartzDS.validationQuery = select 1

# JDBC JobStore設定
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
org.quartz.jobStore.dataSource = QuartzDS
org.quartz.jobStore.tablePrefix = QRTZ_
org.quartz.jobStore.useProperties = false
org.quartz.jobStore.misfireThreshold = 60000
org.quartz.jobStore.isClustered = false
org.quartz.jobStore.clusterCheckinInterval = 15000
org.quartz.jobStore.maxMisfiresToHandleAtATime = 20
org.quartz.jobStore.dontSetAutoCommitFalse = false
org.quartz.jobStore.selectWithLockSQL = SELECT * FROM {0}LOCKS WHERE LOCK_NAME = ? FOR UPDATE
org.quartz.jobStore.txIsolationLevelSerializable = false
org.quartz.jobStore.acquireTriggersWithinLock = false

groovyとPostgreSQLでサーバーとクライアントのIPアドレスを取得する

groovyとPostgreSQLでサーバーとクライアントのIPアドレスを取得するには、以下のコードを実行します。

import groovy.sql.Sql

sql = Sql.newInstance(
"jdbc:postgresql://localhost:5432/jtrac",
"postgres",
"postgres",
"org.postgresql.Driver")

query = """select
inet_client_addr() as ica,
inet_client_port() as icp,
inet_server_addr() as isa,
inet_server_port() as isp
"""

sql.eachRow(query){
// クライアントのアドレス
println "ica:${it.ica}"
// クライアントのポート
println "icp:${it.icp}"
// サーバのアドレス
println "isa:${it.isa}"
// サーバのポート
println "isp:${it.isp}"
println "----"
}


動作環境
Groovy 1.6.3, JDK6 Update16, Postgres 8.4.0,
8.4-701JDBC4

関連情報
inet_client_addr(), inet_client_port(),
inet_server_addr(), inet_server_port()
http://www.postgresql.org/docs/8.4/interactive/functions-info.html

2009年10月18日日曜日

groovyとPostgreSQLで接続しているDB名と接続ユーザ名を取得する

groovyとPostgreSQLで接続しているDB名と接続ユーザ名を取得するには、以下のコードを実行します。


import groovy.sql.Sql

sql = Sql.newInstance(
"jdbc:postgresql://localhost:5432/jtrac",
"postgres",
"postgres",
"org.postgresql.Driver")

query = """select
current_database() as cdb,
current_user
"""

sql.eachRow(query){
// 接続しているDB名
println "cdb:${it.cdb}"
// 接続しているユーザ名
println "current_user:${it.current_user}"
println "----"
}


動作環境
Groovy 1.6.3, JDK6 Update16, Postgres 8.4.0,
8.4-701JDBC4

関連情報
current_database(), current_user
http://www.postgresql.org/docs/8.4/interactive/functions-info.html