2009年7月24日 (金)

JBoss5.xでのHibernate deploy設定について

一つ前の記事で JBoss5.x系でHibernateのdeployの扱い・設定が変わったことにふれました。
参考:http://www.jboss.org/community/wiki/JBossHibernate3

で肝心の設定どうやるの??
というときにドキュメントが見つからない!!
JBossHibernate3 か JBossAS5のドキュメントのどこかにはありそうな気もします。
が見つからないものはしょうがないので感でやってみました。

こんな感じ?

<hibernate-configuration xmlns="urn:jboss:hibernate-deployer:1.0">
    <session-factory
        name="java:/hibernate/adminuser"
        bean="jboss.test.har:service=Hibernate">
        <property name="datasourceName">java:/jdbc/adminuser</property>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>

       <!--↓ココがかんでたしたとこ-->
   <property name="show_sql">false</property>

      <depends>jboss:service=Naming</depends>
      <depends>jboss:service=TransactionManager</depends>
    </session-factory>
</hibernate-configuration>

デプロイ結果

java.lang.RuntimeException: Error configuring property: show_sql for jboss.test.har:service=Hibernate
    at org.jboss.kernel.plugins.dependency.ConfigureAction.dispatchSetProperty(ConfigureAction.java:112)
    at org.jboss.kernel.plugins.dependency.ConfigureAction.setAttributes(ConfigureAction.java:85)
    at org.jboss.kernel.plugins.dependency.ConfigureAction.installActionInternal(ConfigureAction.java:44)
    at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:54)
    at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:42)
    at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
    at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
    at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
    at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
    at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
    at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
    at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:774)
    at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:540)
    at org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.deploy(BeanMetaDataDeployer.java:121)
    at org.jboss.deployers.vfs.deployer.kernel.BeanMetaDataDeployer.deploy(BeanMetaDataDeployer.java:51)
    at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62)
    at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)
    at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)
    at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)
    at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)
    at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1178)
    at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1210)
    at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)
    at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
    at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631)
    at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
    at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
    at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
    at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
    at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:702)
    at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117)
    at org.jboss.system.server.profileservice.hotdeploy.HDScanner.scan(HDScanner.java:362)
    at org.jboss.system.server.profileservice.hotdeploy.HDScanner.run(HDScanner.java:255)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown Source)
    at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(Unknown Source)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(Unknown Source)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalArgumentException: No such property hibernate for bean org.jboss.hibernate.jmx.Hibernate available
[statisticsServiceName, beanName, defaultSchema, defaultCatalog, sessionFactoryName, querySubstitutions, secondLevelCacheEnabled, password, version, statGenerationEnabled, maxFetchDepth, username, useStructuredCacheEntriesEnabled, datasourceName, dirty, streamsForBinaryEnabled, getGeneratedKeysEnabled, hbm2ddlAuto, minimalPutsEnabled, instance, jdbcBatchSize, jdbcScrollableResultSetEnabled, cacheRegionFactoryClass, dialect, scanForMappingsEnabled, runningSince, cacheRegionPrefix, class, cacheProviderClass, sessionFactoryRunning, batchVersionedDataEnabled, harUrl, queryCacheEnabled, sessionFactoryInterceptor, deployedCacheManagerJndiName, showSqlEnabled, reflectionOptimizationEnabled, jdbcFetchSize, listenerInjector, sqlCommentsEnabled, deployedCacheJndiName, controller]
    at org.jboss.beans.info.plugins.AbstractBeanInfo.getProperty(AbstractBeanInfo.java:147)
    at org.jboss.beans.info.plugins.BeanInfoUtil.getNestedPropertyInfo(BeanInfoUtil.java:111)
    at org.jboss.beans.info.plugins.BeanInfoUtil.getPropertyInfo(BeanInfoUtil.java:197)
    at org.jboss.kernel.plugins.dependency.PropertyDispatchWrapper.execute(PropertyDispatchWrapper.java:77)
    at org.jboss.kernel.plugins.dependency.ExecutionWrapper.execute(ExecutionWrapper.java:47)
    at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchExecutionWrapper(KernelControllerContextAction.java:109)
    at org.jboss.kernel.plugins.dependency.ConfigureAction.dispatchSetProperty(ConfigureAction.java:107)
    ... 45 more

まあでもヒントをエラーメッセージ中から発見しました。
オレンジの部分見てください!!
この中に該当しないと指摘されています。
逆にこの中に該当すればよいわけです。

抜き出してみました

statisticsServiceName,
beanName,
defaultSchema,
defaultCatalog,
sessionFactoryName,
querySubstitutions,
secondLevelCacheEnabled,
password,
version,
statGenerationEnabled,
maxFetchDepth,
username,
useStructuredCacheEntriesEnabled,
datasourceName,
dirty,
streamsForBinaryEnabled,
getGeneratedKeysEnabled,
hbm2ddlAuto,
minimalPutsEnabled,
instance,
jdbcBatchSize,
jdbcScrollableResultSetEnabled,
cacheRegionFactoryClass,
dialect,
scanForMappingsEnabled,
runningSince,
cacheRegionPrefix,
class,
cacheProviderClass,
sessionFactoryRunning,
batchVersionedDataEnabled,
harUrl,
queryCacheEnabled,
sessionFactoryInterceptor,
deployedCacheManagerJndiName,
showSqlEnabled,
reflectionOptimizationEnabled,
jdbcFetchSize,
listenerInjector,
sqlCommentsEnabled,
deployedCacheJndiName,
controller

あとはHibernateの設定項目と照らし合わせて設定すればよい感じですね
参考:http://www.redhat.com/docs/manuals/jboss/jboss-eap-4.2/ja_JP/html/Hibernate_Reference_Guide/Configuration-Optional_configuration_properties.html

<hibernate-configuration xmlns="urn:jboss:hibernate-deployer:1.0">

    <!-- a SessionFactory instance listed as /jndi/name -->
    <session-factory
        name="java:/hibernate/adminuser"
        bean="jboss.test.har:service=Hibernate">

        <!-- properties -->
        <property name="datasourceName">java:/jdbc/adminuser</property>
        <property name="dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="showSqlEnabled">false</property>
        <property name="queryCacheEnabled">true</property>
        <property name="jdbcBatchSize">50</property>
       
      <depends>jboss:service=Naming</depends>
      <depends>jboss:service=TransactionManager</depends>

    </session-factory>

</hibernate-configuration>

こんな感じ?
…ココまで書いて気がついた(--;
JBoss4.x系の設定項目の頭を小文字にしただけだ!!
まぁよしとしましょう

2009-07-24 13:27:50,931 INFO  [org.jboss.web.tomcat.service.deployers.TomcatDeployment] (HDScanner) undeploy, ctxPath=/admin
2009-07-24 13:27:51,134 INFO  [org.jboss.hibernate.deployers.HibernateDeployer] (HDScanner) Created Hibernate bean: AbstractBeanMetaData@f185b0{name=jboss.test.har:service=Hibernate bean=org.jboss.hibernate.jmx.Hibernate properties=[dialect, jdbcBatchSize, datasourceName, showSqlEnabled, queryCacheEnabled, sessionFactoryName] constructor=AbstractConstructorMetaData@80188f{parameters=[org.jboss.virtual.VirtualFile]} autowireCandidate=true depends=[jboss:service=Naming, jboss:service=TransactionManager]}
2009-07-24 13:27:51,165 INFO  [org.hibernate.cfg.HbmBinder] (HDScanner) Mapping class: neoplus.admin.data.RoleData -> role_data
2009-07-24 13:27:51,165 INFO  [org.hibernate.cfg.HbmBinder] (HDScanner) Mapping class: neoplus.admin.data.UserData -> user_data
2009-07-24 13:27:51,165 INFO  [org.hibernate.cfg.HbmBinder] (HDScanner) Mapping class: neoplus.admin.data.RoleMap -> role_map
2009-07-24 13:27:51,165 INFO  [org.hibernate.cfg.HbmBinder] (HDScanner) Mapping collection: neoplus.admin.data.UserData.roleMaps -> role_map
2009-07-24 13:27:51,165 INFO  [org.hibernate.util.NamingHelper] (HDScanner) JNDI InitialContext properties:{}
2009-07-24 13:27:51,180 INFO  [org.hibernate.connection.DatasourceConnectionProvider] (HDScanner) Using datasource: java:/jdbc/adminuser
2009-07-24 13:27:51,180 INFO  [org.hibernate.cfg.SettingsFactory] (HDScanner) RDBMS: MySQL, version: 5.1.34-community
2009-07-24 13:27:51,180 INFO  [org.hibernate.cfg.SettingsFactory] (HDScanner) JDBC driver: MySQL-AB JDBC Driver, version: mysql-connector-java-5.0.0-beta ( $Date: 2005-11-17 16:14:47 +0100 (Thu, 17 Nov 2005) $, $Revision$ )
2009-07-24 13:27:51,180 INFO  [org.hibernate.dialect.Dialect] (HDScanner) Using dialect: org.hibernate.dialect.MySQLDialect
2009-07-24 13:27:51,180 INFO  [org.hibernate.transaction.TransactionFactoryFactory] (HDScanner) Transaction strategy: org.hibernate.transaction.JTATransactionFactory
2009-07-24 13:27:51,180 INFO  [org.hibernate.util.NamingHelper] (HDScanner) JNDI InitialContext properties:{}
2009-07-24 13:27:51,180 INFO  [org.hibernate.transaction.TransactionManagerLookupFactory] (HDScanner) instantiating TransactionManagerLookup: org.hibernate.transaction.JBossTransactionManagerLookup
2009-07-24 13:27:51,180 INFO  [org.hibernate.transaction.TransactionManagerLookupFactory] (HDScanner) instantiated TransactionManagerLookup
2009-07-24 13:27:51,180 INFO  [org.hibernate.transaction.TransactionManagerLookupFactory] (HDScanner) instantiating TransactionManagerLookup: org.hibernate.transaction.JBossTransactionManagerLookup
2009-07-24 13:27:51,180 INFO  [org.hibernate.transaction.TransactionManagerLookupFactory] (HDScanner) instantiated TransactionManagerLookup
2009-07-24 13:27:51,180 INFO  [org.hibernate.cfg.SettingsFactory] (HDScanner) Automatic flush during beforeCompletion(): enabled
2009-07-24 13:27:51,180 INFO  [org.hibernate.cfg.SettingsFactory] (HDScanner) Automatic session close at end of transaction: enabled
2009-07-24 13:27:51,180 INFO  [org.hibernate.cfg.SettingsFactory] (HDScanner) JDBC batch size: 50
2009-07-24 13:27:51,180 INFO  [org.hibernate.cfg.SettingsFactory] (HDScanner) JDBC batch updates for versioned data: disabled
2009-07-24 13:27:51,180 INFO  [org.hibernate.cfg.SettingsFactory] (HDScanner) Scrollable result sets: enabled
2009-07-24 13:27:51,180 INFO  [org.hibernate.cfg.SettingsFactory] (HDScanner) JDBC3 getGeneratedKeys(): enabled
2009-07-24 13:27:51,180 INFO  [org.hibernate.cfg.SettingsFactory] (HDScanner) Connection release mode: after_statement
2009-07-24 13:27:51,180 INFO  [org.hibernate.cfg.SettingsFactory] (HDScanner) Maximum outer join fetch depth: 2
2009-07-24 13:27:51,180 INFO  [org.hibernate.cfg.SettingsFactory] (HDScanner) Default batch fetch size: 1
2009-07-24 13:27:51,180 INFO  [org.hibernate.cfg.SettingsFactory] (HDScanner) Generate SQL with comments: disabled
2009-07-24 13:27:51,180 INFO  [org.hibernate.cfg.SettingsFactory] (HDScanner) Order SQL updates by primary key: disabled
2009-07-24 13:27:51,180 INFO  [org.hibernate.cfg.SettingsFactory] (HDScanner) Order SQL inserts for batching: disabled
2009-07-24 13:27:51,180 INFO  [org.hibernate.cfg.SettingsFactory] (HDScanner) Query translator: org.hibernate.hql.ast.ASTQueryTranslatorFactory
2009-07-24 13:27:51,180 INFO  [org.hibernate.hql.ast.ASTQueryTranslatorFactory] (HDScanner) Using ASTQueryTranslatorFactory
2009-07-24 13:27:51,180 INFO  [org.hibernate.cfg.SettingsFactory] (HDScanner) Query language substitutions: {}
2009-07-24 13:27:51,180 INFO  [org.hibernate.cfg.SettingsFactory] (HDScanner) JPA-QL strict compliance: disabled
2009-07-24 13:27:51,180 INFO  [org.hibernate.cfg.SettingsFactory] (HDScanner) Second-level cache: enabled
2009-07-24 13:27:51,180 INFO  [org.hibernate.cfg.SettingsFactory] (HDScanner) Query cache: enabled
2009-07-24 13:27:51,180 INFO  [org.hibernate.cfg.SettingsFactory] (HDScanner) Cache region factory : org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridge
2009-07-24 13:27:51,180 INFO  [org.hibernate.cache.impl.bridge.RegionFactoryCacheProviderBridge] (HDScanner) Cache provider: org.hibernate.cache.HashtableCacheProvider
2009-07-24 13:27:51,196 INFO  [org.hibernate.cfg.SettingsFactory] (HDScanner) Optimize cache for minimal puts: disabled
2009-07-24 13:27:51,196 INFO  [org.hibernate.cfg.SettingsFactory] (HDScanner) Structured second-level cache entries: disabled
2009-07-24 13:27:51,196 INFO  [org.hibernate.cfg.SettingsFactory] (HDScanner) Query cache factory: org.hibernate.cache.StandardQueryCacheFactory
2009-07-24 13:27:51,196 INFO  [org.hibernate.cfg.SettingsFactory] (HDScanner) Statistics: disabled
2009-07-24 13:27:51,196 INFO  [org.hibernate.cfg.SettingsFactory] (HDScanner) Deleted entity synthetic identifier rollback: disabled
2009-07-24 13:27:51,196 INFO  [org.hibernate.cfg.SettingsFactory] (HDScanner) Default entity-mode: pojo
2009-07-24 13:27:51,196 INFO  [org.hibernate.cfg.SettingsFactory] (HDScanner) Named query checking : enabled
2009-07-24 13:27:51,196 INFO  [org.hibernate.impl.SessionFactoryImpl] (HDScanner) building session factory
2009-07-24 13:27:51,227 INFO  [org.hibernate.impl.SessionFactoryObjectFactory] (HDScanner) Not binding factory to JNDI, no JNDI name configured
2009-07-24 13:27:51,227 INFO  [org.hibernate.util.NamingHelper] (HDScanner) JNDI InitialContext properties:{}
2009-07-24 13:27:51,227 INFO  [org.hibernate.cache.UpdateTimestampsCache] (HDScanner) starting update timestamps cache at region: org.hibernate.cache.UpdateTimestampsCache
2009-07-24 13:27:51,227 INFO  [org.hibernate.cache.StandardQueryCache] (HDScanner) starting query cache at region: org.hibernate.cache.StandardQueryCache
2009-07-24 13:27:51,227 INFO  [org.jboss.hibernate.jmx.Hibernate] (HDScanner) SessionFactory successfully built and bound into JNDI [java:/hibernate/adminuser]
2009-07-24 13:27:51,305 INFO  [org.jboss.web.tomcat.service.deployers.TomcatDeployment] (HDScanner) deploy, ctxPath=/admin
2009-07-24 13:27:51,368 WARN  [org.jboss.web.tomcat.service.deployers.TomcatDeployment] (HDScanner) Failed to setup clustering, clustering disabled. NoClassDefFoundError: org/jboss/cache/pojo/jmx/PojoCacheJmxWrapperMBean

ぶじデプロイできました

| | コメント (0) | トラックバック (0)

2009年7月22日 (水)

JBoss5でhar設定が大幅に変わった件

以前この記事は「JBossでharがサポートされていないもよう」としていたのですが
完全に誤報だったので修正。

JBoss 5.x でharの扱いが変わりました。
以前までHibernate Arcaive (HAR)というあつかいでしたが
JBoss5.xからは Hibernate deployとなり
Hibernateの特殊なアーカイブではなくHibernateをJMX(JBossXB?)で
リソースとしてdeployできるというような扱いになったようです。
deployerもHARDeployerからhibernate deployer jboss beansとなっています。

設定ファイルも
[hibernate-service.xml]→[xxxxxxxxx-hibernate.xml](xxは任意)とかわり
フォーマットも変わっています。

詳しくはコチラをご覧ください
http://www.jboss.org/community/wiki/JBossHibernate3

JBoss5でharがさぽーとされていないもよう

JBoss5にharがサポートされていない様子です。
ドキュメントからharの記述が消えてしまいました。
…EJB3を使えて言うことでしょうか?

自分はどうも

呼び出しクラス → ステートレスBean  → エンティティBean

の構造になじめません。
少人数の開発では分業メリットはでないしめんどくさいんですよね。
どうしようか??
フレームワークの利用を検討中です。

| | コメント (0) | トラックバック (0)

2009年3月12日 (木)

ケータイ絵文字がUNICODEに収録されることのWEB制作に与える影響

ついに絵文字がUNICODEに収録されるようですね
http://japan.cnet.com/column/pers/media/story/0,2000058034,20389042,00.htm

めでたいことです。
絵文字がUNICODEに収録された際の自分への影響について考えます。
※WEBプログラマとしての影響と考えてOK

・絵文字が公式規格化されることでPCブラウザで絵文字が表示しやすくなる
   現状IE、firefoxでケータイサイトの確認をする際絵文字を表示するには
   それなりの面倒な設定が必要
・DBに絵文字をそのまま登録することができるようになる。
   現状もMySQLでMS932(Shift_JISの亜流)を指定すれば
   DOCOMO絵文字をそのまま登録できないこともありませんが
   一般的に絵文字はそのままではDBに受け入れられないので
   何らかのエスケープをします。
   これが必要なくなります。
・Javaでネイティブに絵文字を文字として扱える
   現状Eclipseで絵文字が表示できなかったりします。
   これが解消されるのは大きいなぁ
   しかもUNICODEマッピングなのでUNICODEをネイティブ環境としている
   JAVAでネイティブに扱える☆

要するに現状絵文字が扱えないor扱いづらい、様々な環境で
絵文字が使えるようになることが期待できます。
文章にするとそんなこと?と影響が薄いように感じますが、
とてもとても大きな影響があり、感動&期待しております。

はやく収録されないかなぁ…

| | コメント (0) | トラックバック (0)

2009年3月 4日 (水)

JAVA 正規表現ですべての文字にマッチさせるセット

Javaの正規表現には癖がありますねぇ…
Perl癖が何年たっても抜けていないからそう感じるだけかもしれません。

Javaの正規表現でほとんどの文字にマッチしてとても便利な「.(ドット)」
ただこいつはデフォルトでは改行にマッチしてくれません。
Patternクラスを使ってマッチさせる方法もあります「DOTALL」をナンタラカンタラ…

↓詳しくはここ↓
http://www.mlab.im.dendai.ac.jp/~yamada/java/regex/

だがしかし、Patternクラスを使うと言うことで、Patternを使っていない
時この正規表現が使えません
String#replaceAll とかね

でなんか代替えできない物かと考えた結果がこれ
「(.|\\s)」 \s(ソース場では\\s)が改行などの空白文字にうまくマッチしてくれるので
.(ドット)を補完できます。

業務で使ったのですが、汎用的なサンプルが思いつきません(^^;

こんなんでfontタグを削除できるかな?
html_tag = html_tag.replaceAll("<(/)?font((.|\\s)+)?>","");
スイマセン試してないです。

| | コメント (0) | トラックバック (0)

2009年2月18日 (水)

mod_auth_mysql で認証ができない!!→暗号化が必要でした

久しぶりに自分でゼロからサーバーを立てました…。
腕が鈍ってるorz
CentOS4→CecntOS5で、もの凄くパッケージ内容、使い勝手が変わっていてビックリです。

前置きはさておき「社内サーバーでDMZとWebDavでファイルサーバーしよう!!」と言うミッション。
認証は外部パートナーとのデータやりとりもあるので
アイパス(IDとパスワード)をSQL管理してフォルダ毎に許可を出す。

やっとの思いで mod_auth_mysql をインストールしましたが
【Apache エラーログ】[Wed Feb 18 02:29:53 2009] [error] [client 114.182.67.140] user davuser: password mismatch: /uploads
パスワードが違いますと弾かれます。
???????
あってるよ、パスワード!!

いろいろ見てみると mod_auth_mysql の付属ドキュメント「CONFIGURE」に
怪しい下りを発見。

User_name must be a unique, non-empty field.  Its length is however long you
want it to be.  Password length of 20 follows new-style crypt() usage; the
older crypt uses shorter encrypted passwords.  Any other fields in the named
table will be ignored.  The actual field names are configurable using the
parameters listed below.  The defaults are "user_name" and "user_passwd"
respectively, for the user ID and the password, and "user_group" for the group
which is optional.

え!?
パスワードは暗号化(ハッシュ?)しましょうと。
で馬鹿正直にcrypt('password')とやってみましたが、mysqlにそんな関数はないと怒られます。

でどうやるんだ?とググったところ
http://dev.mysql.com/doc/refman/5.1/en/encryption-functions.html#function_encrypt

encrypt('password') とやればよいそうです。

例)
insert into user_info values('user_id',encrypt('user_pass'));

ちなみに crypt() はOSの暗号化関数だそうでmysqlのencryptは
OSのcrypt()を呼び出すそうです、知らんかった。
簡単な処理もJAVAに頼ってしまうのもよくないなぁ…
知識が狭くなる。

【暗号化の回避方法】
AuthMySQLPwEncryption none
↑とするとPlainTextでパスワードの紹介ができます。

おまけ:
上記で引用しましたmod_auth_mysql の付属ドキュメント
パスワードフィールドのデフォルト値が「user_passwd」となっておりますが
私が試した環境では「user_password」がデフォルト値になっておりました。
このあたりは安易にデフォルト値使わずに指定しましょうね☆
という指導的ミスかもしれません。

CentOS5
Apache2.2
mod_auth_mysql 3.0.0(※Apache2用のパッチ適用)

| | コメント (0) | トラックバック (0)

2008年8月 6日 (水)

HQLでinsert(準備稿)

HQLでinsertが使えるって??
めちゃくちゃ便利じゃないかこれ…ちょっと開発が立て込んでいるのでとりあえずメモ
後でちゃんと記事にします。

http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=78&t=002695

OK. Well the reason I ask why you want to do it in HQL, is because HQL only supports insert from another table, so:

code:



Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
String insertStatement = "insert into Object (id, name) select oo.id, oo.name from OtherObject oo";
s.createQuery( insertStatement ).executeUpdate();
tx.commit();
session.close();


would be how you do it.

Looking at your code above however there is no other table to select from.

| | コメント (0) | トラックバック (0)

2008年2月22日 (金)

HQLでINを使用して配列で検索

HQLでINを使用して配列で検索する方法にクセがあったのでまとめです。
…分かりづらい表題で申し訳ない。

※例では架空のHTTPのアクセスログからレコードを検索しています。

◆基本パターン
db_session.createQuery("from AccessLog log where log.url in ('/index.html','/infomation.html')");

ここでURLを変更できるようにしたいと思う…。

String[] url_list = {'/index.html','/infomation.html','/link.html'};
db_session.createQuery("from AccessLog log where log.url in (:urls)").setParameterList("urls",url_list);

ポイント:
① setParameterList メゾットを利用してパラメータを設定する
② :urls の部分を必ず()で囲む

そんなにひねくれてないかもしれないけど、自分は②が分からずに相当苦労した。
知っていればああそうですむ話(^^;

| | コメント (0) | トラックバック (0)

傲慢なLマークとレコード業界

合法なCD音源の着うたサイトを認識させるLマークがスタートしました
http://www.riaj.or.jp/release/2008/pr080219.html

このマークはレコード(CD)音源や音楽ビデオの権利をレコード会社と
契約して配信ししているサイトにお墨付きとして付与されます。
違法サイト撲滅のために普及を図るとレコード業界は躍起です。

各メディアが近い将来Lマークのないサイトは違法サイト(の可能性有り)
というような状況になると報じています。
ところが合法着うたサイトでもLマークを取得できないサイトがあることは
ほとんど報道されていません。

いま着うたには大きく3つの種類があります。
①レコード会社と契約しCD音源を使用した着うた(オリジナル演奏、オリジナル歌声)
②レコード会社と契約していないCD音源を違法に使用した着うた(オリジナル演奏、オリジナル歌声)
③スタジオミュージシャンなどが本物に似せて演奏、歌声でレコーディングされた着うた

この記事で問題にしているのは③の着うたです。
これはCD音源を使用していないのでLマークの認定を受けられませんが
著作権使用料を払っている限り合法です。

大手企業にしかCD音源を開放しないレコード会社に対し
合法的なモバイルコンテンツ業者は③の方式をとってきました。
今回のLマークの認証基準は明らかに③を排除する方向に働いてきます。

②が違法でレコード業界の権利を侵害していることは議論の余地の無いところですが
③も邪魔だからついでに排除してしまえというのは違法な独占行為で権利の拡大解釈及び乱用
と言われても仕方の無いところです。

そもそも人々の行動は自由であり、著作権は著作の発展のため限定的に許可された
他人の自由を拘束する権利です。
拡大解釈をしたりすることは許されません。

許可されたCD音源のみが合法的な音楽配信だというように振舞うのは
レコード業界の傲慢に思えて仕方ありません

| | コメント (0) | トラックバック (0)

2007年11月29日 (木)

rpmのDBが壊れた時の対処

あるひ新しいサーバーにMySQLをインストールしようとしたら

[root@sv2 user_name]# rpm -ivh MySQL-*-community-5.0.45-0.rhel4.i386.rpm
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30978) from dbenv->open: DB_RUNRECOVERY: Fatal error, run database recov                                       ery
error: cannot open Packages index using db3 -  (-30978)
error: cannot open Packages database in /var/lib/rpm
warning: MySQL-client-community-5.0.45-0.rhel4.i386.rpm: V3 DSA signature: NOKEY, key ID 5                                       072e1f5
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30978) from dbenv->open: DB_RUNRECOVERY: Fatal error, run database recov                                       ery
error: cannot open Packages database in /var/lib/rpm
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30978) from dbenv->open: DB_RUNRECOVERY: Fatal error, run database recov                                       ery
error: cannot open Packages database in /var/lib/rpm
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30978) from dbenv->open: DB_RUNRECOVERY: Fatal error, run database recov                                       ery
error: cannot open Packages database in /var/lib/rpm
rpmdb: PANIC: fatal region error detected; run recovery
error: db4 error(-30978) from dbenv->open: DB_RUNRECOVERY: Fatal error, run database recov                                       ery
error: cannot open Packages database in /var/lib/rpm

orz...
えーrpmが壊れたって対処できんよそりゃ(T_T)
今回は検索してもなかなか対処方法が出なくてほんとに困りました。
サーバー会社に電話掛けようとしたところでギリギリ自力解決

http://www.atmarkit.co.jp/flinux/rensai/linuxtips/677errorrpm.html
↑@ITさんに情報がありました。

データベースファイルを削除して
rpm --rebuilddb
で回復しました。
rpmが本格的におかしくなったのではなく使用しているDBのデータが壊れただけで
再構築すれば直ります、同じようなエラーが出た人はあきらめないで頑張ってください。

| | コメント (0) | トラックバック (0)

2007年11月15日 (木)

WTP2.0が出てる

いつの間にやらWTP2.0がリリースされています。
http://www.eclipse.org/webtools/
2ヶ月遅れの情報です(=_=;

日本語版検索やるとgoogleでもyahooでもこういった国際プロジェクト(日本語ページなし)
の本家サイトになかなかたどり着けない…どうにかならないものでしょうか?

WTP 1.5系は重かったためスルーした私ですが2.0はどうなんでしょうか?
重い、軽いと言ったレポートは検索してもHITしませんでした。
自身で試せるのは…スケジュール的に12月位かな、、、
そのうちレポートします。

| | コメント (0) | トラックバック (0)

«PHPの美徳