死後も意識は生き続ける。
ランザ博士は、「生命中心主義(バイオセントリズム)」を標榜し、意識と物質である肉体はまったくの別物であると仮定、意識こそが物質を生み出しているという大胆な仮説を提唱していることで知られる。この仮説の根底には量子力学に見られる観測者問題がある。光が観測されている状態では粒子として振る舞い、観測されていない状態では並として振舞う「二重スリット実験」から、ランザ博士は物質に還元できない意識が宇宙において重要な役割を果たしていると考えているのだ。
だそうだ。
二重スリット実験の不可思議な結果は、外部の観測者(巨視的な視点)のための観測(つまり何かの測定器)が与えられると、波動的な特徴は収束してしまい見えなくなってしまうのは単に設置した観測装置がスリッドを通過する光子から波動的な特徴は取り除いてしまうけど・・・
なぜそうなるのか、まだ判っていない。光子の波動的な振る舞いについては『よく判りません』な状況。
しかし、この人は、英知のある人類という観察者の存在がその結果を導いたのだ!
という、ありがちな(都合の良い)方向に発展させたらしい。
勿論、勘違いも甚だしいモノとは思うけど、面白ければビジネスになる世の中なので、それはそれでいいのかもしれない。
「信じる者は救われる」という言葉があるので、「信じている間は救われた様な気分がする」だろう。
先の測定器の欠陥が判る日までは。(合掌
仮に「死後も意識は生き続ける。」として、肉体を牢獄として捉えると、死は肉体からの解放と云えるが、肉体からの五感を失った意識は何から情報を得、また何へ情報を伝えることができるのだろうか?情報を得ることも外部へ送ることもできないような気がする。それは刑期の終りが無い禁固刑に処せられる事を意味するではないだろうか?
<dependencies> <dependency> <groupId>io.thorntail</groupId> <artifactId>arquillian</artifactId> <scope>test</scope> </dependency> </dependencies>
を付け、さらにproject-defaults.yml
にデータベースの設定(例)が
swarm:
datasources:
data-sources:
MyDS:
driver-name: myh2
connection-url: jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
user-name: sa
password: sa
jdbc-drivers:
myh2:
driver-class-name: org.h2.Driver
xa-datasource-name: org.h2.jdbcx.JdbcDataSource
driver-module-name: com.h2database.h2
と続き、
package org.wildfly.swarm.howto.incontainer;
@RunWith(Arquillian.class)
@DefaultDeployment(type = DefaultDeployment.Type.JAR)
public class InContainerTest {
@ArquillianResource
InContainerTest context;
で、インスタンスを確保して、
@Test
public void testDataSourceIsBound() throws Exception {
DataSource ds = (DataSource) context.lookup("java:jboss/datasources/MyDS");
assertNotNull( ds );
}
が走るようになればいいのかな?
}
これで、InContainerTest
をGoすればいつもの様にJDBCの設定のテストができるっぽい。
でも、記憶を遡ると、JBOSSのJDBCの設定って通算で4通りくらいあったし、最近のJBOSS系の設定はサッパリだ。
違うドキュメントにはJUnitっぽい方法が書いてあったり、この辺は実際に動かしてみたいと(><; ) わかんないんです!なぁ。
実際のSQLは、どうなるのかな?とググってみると
Connection con;PreparedStatement prepStmt ;ResultSet rs ; try { Context context = new InitialContext(); DataSource ds = (DataSource) context.lookup("java:jboss/datasources/${DS名}"); con = ds.getConnection(); String selectStatement = "select * from ${table名} where ${field名} = ?"; prepStmt = con.prepareStatement(selectStatement); prepStmt.setString(1, "*"); rs = prepStmt.executeQuery(); while (rs.next()) String title = rs.getString(0); } catch (NamingException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { rs.close(); prepStmt.close(); con.close(); } のように書けばいいらしい。 というか
<dependency>
<groupId>io.thorntail</groupId>
<artifactId>camel-mybatis</artifactId>
</dependency>
を使った方がいいかな。
ここを見たけど、挫折しそう。ここはMyBatisの本家がいい。
本家のドキュメントには The task of the JDBC driver is communicating with the database while providing a constant API to application developers. An application must supply its own JDBC driver because of the wide range of available databases and the driver version. Usually, the application does not directly interact with the JDBC driver; instead, the underlying runtime manages creating a datasource, which provides an efficient way to share and manage a discrete connection or a pool of connections to a particular database using the driver. と書いてあるから先の様にDataSourceを参照すれば、自動的にPostgreSQLのConnectionPoolDataSourceが使われてコネクション・プール化されるような気がする。 ただし、postgreSQLの場合はdataSourceNameやinitialConnectionsやmaxConnectionsも必要らしいので、project-defaults.yml
の設定項目が swarm: datasources: jdbc-drivers: org.postgresql: driver-class-name: org.postgresql.Driver xa-datasource-class-name: org.postgresql.xa.PGXADataSource driver-module-name: org.postgresql data-sources: ${DS名}: driver-name: org.postgresql connection-url: jdbc:postgresql://localhost:5432/postgres user-name: postgres password: postgres で十分なのか?不安がある。 ログ用の書き方はとても長いけど、ちゃんと作らないと困りそう。