CLOVER🍀

That was when it all began.

Apache Geode 1.1.0で、LocatorのみでJARファイルがデプロイできるようになったという話

Apache Geode 1.1.0がリリースされました。incubatingから、Apacheのトップレベルのプロジェクトに
なりましたね。

Release Notesは、こちら。

1.1.0

その中で、ちょっと気になったのがこちら。

  • Made cluster configuration service easier to use so that you can deploy/undeploy code even before any cache servers are running.

なにが簡単になったんだろう?と思って、ちょっと追ってみました。

関係するISSUEは、おそらくこちら。

[GEODE-2199] deploy/undeploy should continue even if there is no running servers in the cluster - ASF JIRA

Serverがクラスタで動いていなくても、deploy/undeployできてもいいのでは?ってことみたいです。

ここで言う「Server」は、Locator/ServerのServerっぽいです。つまり、結論を先に言うと、Locatorが
動作していればJARファイルがデプロイできるようになりました。

確認してみましょう。

Apache Geode 1.1.0の場合

まず、Apache Geode 1.1.0のgfshを起動します。

$ gfsh
    _________________________     __
   / _____/ ______/ ______/ /____/ /
  / /  __/ /___  /_____  / _____  / 
 / /__/ / ____/  _____/ / /    / /  
/______/_/      /______/_/    /_/    1.1.0

Monitor and Manage Apache Geode
gfsh>

この時点では、deployコマンドは使えません。

gfsh>deploy
"deploy" is not available. Reason: Requires connection.

Locatorを起動してみます。

gfsh>start locator --name=locator
Starting a Geode Locator in /opt/apache-geode/locator...

ここまででdeployコマンドが使えるようになるので、JARファイルをデプロイしてみます。Apache Geode自身に含まれる
Commons IOをデプロイしてみます。

gfsh>deploy --jar=/opt/apache-geode/lib/commons-io-2.4.jar

なんか、無言ですが…。

Serverがいないので、「list deployed」も応答がありません。

gfsh>list deployed
No Members Found

では、Serverを起動してみます。

gfsh>start server --name=server1
Starting a Geode Server in /opt/apache-geode/server1...

すると、JARファイルがデプロイできています。

gfsh>list deployed
Member  |        JAR         | JAR Location
------- | ------------------ | ----------------------------------------------------
server1 | commons-io-2.4.jar | /opt/apache-geode/server1/vf.gf#commons-io-2.4.jar#1

では、Serverを止めてみます。

gfsh>stop server --dir=server1
Stopping Cache Server running in /opt/apache-geode/server1 on 53db112a06e7[40404] as server1...

でももしかして、undeployはできない…?

gfsh>undeploy --jar=commons-io-2.4.jar
No Members Found

んー?

Apache Geode 1.0.0-incubatingの場合

gfshを起動。

gfsh
    _________________________     __
   / _____/ ______/ ______/ /____/ /
  / /  __/ /___  /_____  / _____  / 
 / /__/ / ____/  _____/ / /    / /  
/______/_/      /______/_/    /_/    1.0.0-incubating

Monitor and Manage Apache Geode (incubating)
gfsh>

Locatorを起動して

gfsh>start locator --name=locator
Starting a Geode Locator in /opt/apache-geode/locator...

JARファイルをデプロイ。

gfsh>deploy --jar=/opt/apache-geode/lib/commons-io-2.4.jar
No Members Found

この時点で、「メンバーがいないよ」と言われます。

ですので、Serverを起動しても

gfsh>start server --name=server1
Starting a Geode Server in /opt/apache-geode/server1...

JARファイルはデプロイされていません、と。

gfsh>list deployed
No JAR Files Found

undeployはよくわかりませんでしたが、deployはできるようになりましたと。とりあえず。