µÚ
1 ²½. ´´½¨ Bluemix ·þÎñ
°´ÕÕÕâЩ²½ÖèÀ´´´½¨ÐèÒªµÄ Bluemix ·þÎñ¡£
Liberty for Java
1.µÇ¼µ½ Bluemix¡£
2.Ôڲ˵¥Öе¥»÷ CATALOG ²¢ÏòϹö¶¯µ½ Runtimes ²¿·Ö¡£
3.µ¥»÷ Liberty for Java¡£
4.ÔÚ Start with a runtime Ï£¬ÊäÈëÒ»¸ö²»Í¬ÓÚ
DBStat£¨ËüÒѱ»Ê¹Ó㩵ÄΩһÃû³Æ¡£
5.Óò (mybluemix.net) ½«×Ô¶¯Ìî³ä¡£
6.¶ÔÓÚ Leave Selected Plan£ºDefault¡£
7.µ¥»÷ CREATE¡£
µÈµ½ÔÚ APP HEALTH Ï¿´µ½ ¡°Your app is running¡±¡£
±¸×¢£ºÈç¹û¿´µ½Ò»ÌõÏûÏ¢±íÃ÷Ó¦ÓóÌÐòÐèÒªÖØÐ³ÊÏÖ£¬µ¥»÷ OK¡£
Mobile Data
1.Ôڲ˵¥Öе¥»÷ CATALOG ²¢ÏòϹö¶¯µ½ Mobile ²¿·Ö¡£
2.Ñ¡Ôñ Mobile Data¡£
3.ÔÚ App ÏÂÀ²Ëµ¥ÖУ¬Ñ¡ÔñÄúµÄÓ¦ÓóÌÐò¡£
4.¶ÔÓÚ Leave Selected Plan£ºShared¡£
5.µ¥»÷ CREATE¡£
µÈµ½ÔÚ APP HEALTH Ï¿´µ½ ¡°Your app is running¡±¡£
Mobile Application Security
1.Ôڲ˵¥Öе¥»÷ CATALOG ²¢ÏòϹö¶¯µ½ Mobile ²¿·Ö¡£
2.Select Mobile Application Security.
3.ÔÚ App ÏÂÀ²Ëµ¥ÖУ¬Ñ¡ÔñÄúµÄÓ¦ÓóÌÐò¡£
4.¶ÔÓÚ Leave Selected Plan£ºStandard¡£
5.µ¥»÷ CREATE¡£
µÈµ½ÔÚ APP HEALTH Ï¿´µ½ ¡°Your app is running¡±¡£
Push
1.Ôڲ˵¥Öе¥»÷ CATALOG ²¢ÏòϹö¶¯µ½ Mobile ²¿·Ö¡£
2.Ñ¡Ôñ Push¡£
3.ÔÚ App ÏÂÀ²Ëµ¥ÖУ¬Ñ¡ÔñÄúµÄÓ¦ÓóÌÐò¡£
4.¶ÔÓÚ Leave Selected Plan£ºStandard¡£
5.µ¥»÷ CREATE¡£
µÈµ½ÔÚ APP HEALTH Ï¿´µ½ ¡°Your app is running¡±¡£
Cloud Integration
1.Ôڲ˵¥Öе¥»÷ CATALOG ²¢ÏòϹö¶¯µ½ Integration
²¿·Ö¡£
2.Ñ¡Ôñ Cloud Integration¡£
3.ÔÚ App ÏÂÀ²Ëµ¥ÖУ¬Ñ¡ÔñÄúµÄÓ¦ÓóÌÐò¡£
4.¶ÔÓÚ Leave Selected Plan£ºCloud Integration
Plan¡£
5.µ¥»÷ CREATE¡£
µÈµ½ÔÚ APP HEALTH Ï¿´µ½ ¡°Your app is running¡±¡£
µÚ 2 ²½. ¼ÇÏÂÄúµÄÓ¦ÓóÌÐòÐÅÏ¢
´´½¨ Bluemix ·þÎñºó£¬°´ÕÕÒÔϲ½Öè¼Ç¼ÄúÓ¦ÓóÌÐòµÄ¹Ø¼üÐÅÏ¢¡£ÒÔºó»áÓÃÔÚ
DBStat ʾÀý´úÂëÖÐÓõ½´ËÐÅÏ¢¡£
±¸×¢£º±¾½Ì³ÌÒÔÎÒµÄÓ¦ÓóÌÐòÐÅÏ¢×÷ΪʾÀý¡£Ò»¶¨ÒªÊ¹ÓÃΪÄúÉú³ÉµÄÓ¦ÓóÌÐòÐÅÏ¢£¬¶ø²»ÊÇÄúÔڽ̳ÌʾÀýÖп´µ½µÄÐÅÏ¢¡£
µÇ¼µ½ Bluemix ºó£º
1.µ¥»÷²Ëµ¥ÖÐµÄ DASHBOARD£¬ÔÚ Applications ÏÂÑ¡ÔñÄúµÄÓ¦ÓóÌÐò¡£
2.µ¥»÷ MOBILE OPTIONS ²¢ÕÒµ½Ñ¡Ïî 3¡£
3.¼ÇÏÂÄúµÄÓ¦ÓóÌÐò ID¡£
ʾÀý£º 6e18da73-08e9-4d35-9190-a422541ffe07
4.¼ÇÏÂÄúµÄÓ¦ÓóÌÐòÃÜÔ¿¡£
ʾÀý£º 322212ee2e2ad64636791bb2fb03b0f4760ebfa8
5.¼ÇÏÂÄúµÄÓ¦ÓóÌÐò·ÓÉ¡£
ʾÀý£º DBStat.mybluemix.net
µÚ 3 ²½. °²×° Cloud Integration Secure
Connection
½« Cloud Integration Secure Connection Èí¼þ°²×°ÔÚÄܹ»·ÃÎÊÄúµÄÄÚ²¿Êý¾Ý¿âµÄ»úÆ÷ÉÏ¡£¶ÔÓÚ±¾½Ì³Ì£¬ÎÒʹÓÃÁËÒ»¸ö°²×°ÁËÎÒµÄ
IBM Content Manager Library Server Êý¾Ý¿âµÄ Windows »úÆ÷¡£
µÇ¼µ½ Bluemix ºó£º
1.µ¥»÷ DASHBOARD£¬Ñ¡ÔñÄúµÄÓ¦ÓóÌÐò£¬Ñ¡Ôñ Cloud Integration£¬È»ºóµ¥»÷
SECURE CONNECTIONS¡£Äú»á¿´µ½ ¡°Manage Secure Connections¡±
Ò³Ãæ¡£
2.ÔÚ×Ö¶Î ¡°Name your connection¡± ÖУ¬ÊäÈë W520¡£
3.ÔÚ Standard Ï£¬µ¥»÷ Add¡£
4.ÔÚ Driver Ï£¬µ¥»÷ INSTALL¡£ÄúÈ»ºó½«¿´µ½Ò»¸öµ¯³ö´°¿Ú£º
Bluemix Manage Secure
Connections Ãæ°åÉϵÄÌáʾ
5.ÔÚµÚÒ»¸öÌáʾÏ£¬µ¥»÷ Config¡£
6.ÏÂÔØ×¨ÃÅΪÄúÉú³ÉµÄÅäÖÃÎļþ¡£ÔÚÎÒµÄʾÀýÖУ¬ÅäÖÃÎļþÃûΪ£ºf5bg64b8-e8ee-458f-9b1d-eb1dda8fea15_W520-config_file¡£
7.ÔÚµÚ¶þ¸öÌáʾÏ£¬µ¥»÷ Windows 64 bit¡£
8.ÏÂÔØ windows-secure-connector-installer_64.exe
Îļþ¡£
ÔÚ Windows »úÆ÷ÉÏ£¬ÔËÐÐ windows-secure-connector-installer_64.exe
À´°²×° Cast Iron Secure Connector£º
1.Install£¨°²×°£©> Next¡£
2.½ÓÊÜÐí¿É > Next¡£
3.Installation path£¨°²×°Â·¾¶£©£ºC:\Program
Files (x86)\IBM\Secure_Connector_1.7.0.0.1 > Next¡£
4.Target directory£¨°²×°Ä¿Â¼£©> OK¡£
5.Shortcuts£¨¿ì½Ý·½Ê½£©> Next¡£
6.Finished£¨½áÊø£©> Next¡£
7.Secure Connector Configuration File£¨°²È«Á¬½ÓÆ÷ÅäÖÃÎļþ£©£º<ÕÒµ½
f5bg64b8-e8ee-458f-9b1d-eb1dda8fea15_W520-config_file
µÄλÖà > > Next¡£
8.Secure Connector Configuration£¨°²È«Á¬½ÓÆ÷ÅäÖÃÎļþ£©>
Next¡£
9.Proxy Configuration£¨´úÀíÅäÖã© > Next¡£
10.µ¥»÷ ¡°Install and run Secure Connector
as a Windows service¡± > Next¡£
11.Processing£¨´¦Àí£©> Next¡£
12.Create Third Party Jar£¨´´½¨µÚÈý·½ Jar£©>
Next¡£
13.Update changes£¨¸üбä¸ü£©> NO¡£
14.Installation completed£¨°²×°ÒÑÍê³É£©>
Done¡£
ÔÚ Windows ·þÎñÃæ°åÖÐÆô¶¯ Cast Iron Secure Connector ·þÎñ¡£
ÔÚ Bluemix Manage Secure Connections Ãæ°åÉÏ£º
1.µ¥»÷ X ¹Ø±Õµ¯³ö´°¿Ú¡£
2.ÔÚ Action Ï£¬µ¥»÷Ë¢ÐÂͼ±ê¡£×´Ì¬´Ó Not Connected
¸ü¸ÄΪ Connected¡£
3.µ¥»÷ Done¡£ Bluemix Manage Secure Connections
Ãæ°åÉϵĽá¹û

µÚ 4 ²½. ´´½¨ Cloud Integration Enterprise
API
µÇ¼µ½ Bluemix ʱ£º
1.µ¥»÷ DASHBOARD£¬Ñ¡ÔñÄúµÄÓ¦ÓóÌÐò£¬Ñ¡Ôñ Cloud Integration£¬È»ºóµ¥»÷
APIS¡£È»ºóµ¥»÷ Create API¡£
2.Äú»á¿´µ½Ò»ÌõÏûÏ¢ÏÔʾ ¡°How can others in this
organization find your API?¡±
3.ÃüÃûÄúµÄ API£ºW520¡£
4.ÃèÊöÄúµÄ API£ºW520 API¡£
5.µ¥»÷ Generate from an Enterprise Endpoint¡£
6.ÔÚ Resource Ï£¬µ¥»÷ Connect to your first
Enterprise Endpoint¡£
7.Ϊ Connect to an Enterprise Endpoint
Ñ¡Ôñ DB2¡£
8.Äú»á¿´µ½Ò»ÌõÏûÏ¢ÏÔʾ ¡°Where is the database
or SAP?W520 (Connected)¡±¡£Èç¹ûʹÓÃ×Ô¼ºµÄÊý¾Ý¿â£¬ÄÇôÔÚ½ÓÏÂÀ´µÄ²½ÖèÖÐÊäÈëÄú×Ô¼ºµÄÊý¾Ý¿âÐÅÏ¢¡£Êý¾Ý¿âÃû³Æ£ºicmnlsdb¡£
9.Ö÷»úÃû»ò IP µØÖ·£ºlocalhost¡£
10.¶Ë¿Ú£º50000¡£
11.Óû§Ãû£ºicmadmin¡£
12.ÃÜÂ룺<ÃÜÂë>¡£
13.µ¥»÷ Connect¡£
³É¹¦Á¬½Óºó£¬°´ÕÕÒÔϲ½ÖèÀ´¹¹½¨ÄúµÄ API¡£
1.ÔÚ Resources Ï£¬Äú»á¿´µ½Ò»ÌõÏûÏ¢ÏÔʾ ¡°Next, build
your API by connecting to the Enterprise Endpoint you
want to use¡±¡£Èç¹ûʹÓÃ×Ô¼ºµÄÊý¾Ý¿â£¬ÄÇôÔÚ½ÓÏÂÀ´µÄ²½ÖèÖÐÊäÈëÄú×Ô¼ºµÄÊý¾Ý¿âÐÅÏ¢¡£Ñ¡ÔñÄúµÄÆóÒµ¶Ëµã£ºicmnlsdb-localhost
W520¡£
2.Ñ¡Ôñģʽ£ºICMADMIN¡£
3.Ñ¡ÔñÄúÏëҪΪÆä´´½¨ API µÄ±í£ºICMSTRESOURCEMGR¡£Äú»á¿´µ½Ò»ÌõÏûÏ¢ÏÔʾ
¡°Now you can choose which resources you want to make
available¡±¡£
4.È·±£¶ÔÓÚËùÓз½·¨£¬ÔÚÓҲ඼ÏÔʾÁË Include£¨GET¡¢POST¡¢PUT¡¢DELETE£©¡£
5.µ¥»÷ Create API¡£
µÚ 5 ²½. ¼ÇÏÂÄúµÄ Enterprise API ÐÅÏ¢
´´½¨ Cloud Integration Enterprise API ºó£¬¼ÇÏÂÃÜÔ¿ÐÅÏ¢ºÍÄúµÄ API
µÄ URL¡£ÒÔºó»áÔÚ DBStat Web ʾÀý´úÂëÖÐÓõ½´ËÐÅÏ¢¡£
µÇ¼µ½ Bluemix ºó£º
1.תµ½ DASHBOARD£¬Ñ¡ÔñÄúµÄÓ¦ÓóÌÐò£¬Ñ¡Ôñ Cloud Integration£¬È»ºóÑ¡Ôñ
W520 API¡£
2.¼ÇÏÂÃØÃÜ API ÃÜÔ¿¡£
ʾÀý£º'API_SECRET' : 33d3f0b16e765e8d0c4d3b428abcdb4f18cfaa4cd38f6d1065093e512b32e9afe1aced892e42c59aea3082441e3c63f5
3.¼ÇÏ GET URL£¨Ö±µ½Ä£Ê½Ãû³Æ£©¡£
ʾÀý£ºhttps://provide.castiron.com/env/DatabaseEP/database/8e48ebd5-cc0c-4a96-a904-3e29609d737e

ÃØÃÜ API ÃÜÔ¿ºÍ»ñÈ¡ URL
µÚ 6 ²½. ´´½¨Ò»¸ö Google ÏîÄ¿²¢¼ÇϸÃÐÅÏ¢
´Ó Google ÏîÄ¿»ñÈ¡µÄÐÅÏ¢»áÔÚÒÔºóÓÃÓÚÅäÖà Bluemix Push ·þÎñ¡£
1.תµ½ https://cloud.google.com/console/project¡£
2.µ¥»÷ Create Project¡£
3.Project Name£ºDBStat¡£
4.¹´Ñ¡ ¡°I have read and agree to the
Google Cloud Platform Terms of Service.¡±
5.µ¥»÷ Create¡£
6.¼ÇÏÂÒ³Ãæ¶¥²¿µÄÏîÄ¿±àºÅ¡£
ʾÀý£º62537192145
7.µ¥»÷×ó²àµÄ APIs & auth¡£
8.µ± APIs ºÍ auth ²¿·Ö³öÏÖÔÚ×ó²àʱ£¬µ¥»÷ APIs¡£
9.´ò¿ª Google Cloud Messaging for Android£¨ÔÚÁбíÖÐÏòϹö¶¯ÒÔ¿´µ½Ëü£©¡£
Google Cloud Messaging for Android£¬ÒÑ´ò¿ª
10.µ¥»÷×ó²àµÄ Credentials¡£
11.µ¥»÷ Create new key¡£
12.µ¥»÷ Server key¡£
13.µ¥»÷ Create¡£
14.¼ÇÏÂÄúµÄ API ÃÜÔ¿¡£
ʾÀý£ºBJabSyDQagRuBHscjVMz0VdO-Uxyrtm86dsMY3Y
µÚ 7 ²½. ÅäÖÃ Bluemix Push ·þÎñ
ʹÓÃÀ´×Ô Google ÏîÄ¿µÄÐÅÏ¢ÅäÖà Push ·þÎñ¡£
µÇ¼µ½ Bluemix ºó£º
1.µ¥»÷²Ëµ¥ÖÐµÄ DASHBOARD£¬²¢ÔÚ Services ϵ¥»÷
Push¡£
2.Äú»á¿´µ½ ¡°Configuration" ºÍ "Google
Cloud Messaging¡±¡£ÔÚ Google Cloud Messaging Ï£¬µ¥»÷ EDIT¡£
3.ÔÚ Sandbox Configuration ºÍ Production
Configuration Öж¼ÊäÈëÄúµÄ GCM API ÃÜÔ¿ºÍ Google API ÏîÄ¿±àºÅ¡£
4.µ¥»÷ SAVE¡£

Sandbox Configuration
ºÍ Production Configuration
µÚ 8 ²½. ÏÂÔØ²¢ÅäÖÃʾÀý Web Ó¦ÓóÌÐò´úÂë
°´ÕÕÕâЩ²½ÖèÏÂÔØ DBStat ʾÀý Web Ó¦ÓóÌÐòµÄÔ´´úÂë¡£
1.תµ½ DevOps Services project£¬²¢µ¥»÷²Ëµ¥ÖеÄ
EDIT CODE¡£ È»ºóÏÂÔØ´úÂ룺
git clone https://hub.jazz.net/git/bluebrain/DBStatWebApp
2.±à¼ dbstat.properties Îļþ£¬ÈçÏÂËùʾ£¬Ê¹Ö®ÓëÄúµÄÐÅÏ¢ÏàÆ¥Åä¡£
3.´Ë´úÂëÒÀÀµÓÚ org.json-20120521.jar Îļþ£¬ËüÒÀ¾Ý
GPL Version 2 »ñµÃÊÚȨ£¬¿ÉÔÚ https://code.google.com/p/org-json-java/downloads/list
ÉÏÕÒµ½¡£½«Õâ¸ö jar ÎļþÌí¼Óµ½ DBStat ´úÂë WEB-INF/lib Îļþ¼ÐÖС£´Ë jar ÓÃÓÚ½âÎö
JSON ¶ÔÏó¡£
±¸×¢£ºÄúÐèÒª¸ü¸Ä WEB-INF/classes/dbstat.properties ÎļþÖеÄÒÔÏÂÖµ£¬ÒÔÓëÄúµÄÐÅϢƥÅä¡£
ÔÚÉÏÃæµÄʾÀýÖУ¬ICMSTRESOURCEMGR ÊÇ IBM Content Manager ÖеÄÒ»¸ö
Library Server ±í£¬Ëü°üº¬×ÊÔ´¹ÜÀíÆ÷µÄ״̬ÐÅÏ¢¡£×ÊÔ´¹ÜÀíÆ÷ÃûΪ rmdb£¬ÕâÊDZíÁÐ RMNAME
ÖеÄÖµ¡£×´Ì¬ÊÇ RMFLAGS ±íÁÐÖеÄÖµ¡£
DBStat Web Ó¦ÓóÌÐò´úÂë
¸Ã DBStat Web Ó¦ÓóÌÐòʹÓà REST_API_URL ÔÚ DB_TABLE_NAME ±íÖвéѯÔÚ
DB_ROW_COLUMN_NAME ÁÐÖаüº¬ DB_ROW_COLUMN_VALUE ÖµµÄÐС£
REST_API_URL = props.getProperty(REST_API_URL)+"/"+
DB_SCHEMA_NAME+
"/Tables/"+
DB_TABLE_NAME+"?"+
DB_ROW_COLUMN_NAME+"="+
DB_ROW_COLUMN_VALUE;
//rest api url to read a DB table row
String Url_value = REST_API_URL;
String serverURL = new URL(Url_value);
//bluemix app secret key
String API_SECRET_key = "API_SECRET";
String API_SECRET_value = API_SECRET;
httpConnection = (HttpURLConnection) serverURL.openConnection();
httpConnection.setRequestProperty(API_SECRET_key, API_SECRET_value); |
²éѯÏìÓ¦ÒÔ JSON ¸ñʽ·µ»Ø£¬ÈçÕâ¸öʾÀýËùʾ£º
{"rows":{"row":{"RMCODE":1,"RMPLATFORM":"0","USERID":"ICMADMIN ",
"CHANGED":"2014-06-10 03:35:16.311","RMFLAGS":2,"TOKENDURATION":172800,"DOMAINID":2,
"RMUSERID":"RMADMIN ","RMNAME":"rmdb",
"INETADDR":"W520.svl.ibm.com","CURRENTVERSION":8.4.03.300,"CACHEOBJSIZELIMIT":"0.0",
"RMPASSWORD2":"[B@abcd2a9b"}}} |
ÔÚÉÏÃæµÄʾÀýÖУ¬"RMNAME":"rmdb"
²éѯ·µ»ØÁËÒ»¸ö°üº¬Êý¾Ý¿â״̬ "RMFLAGS":2 µÄÐС£ÎÒÃÇÐèÒª½âÎöÕâ¸ö JSON
¶ÔÏ󣬴ÓÊý¾Ý¿â״̬ "RMFLAGS":2 Öлñȡֵ 2¡£
//parse json object for db status value in "DB_STATUS_COLUMN_NAME:dbStatus"
int dbStatus = -1;
JSONObject jsonObject = new JSONObject(builder.toString());
System.out.println("json object : "+jsonObject.toString());
System.out.println("rows : "+jsonObject.get("rows"));
if (jsonObject.get("rows").toString().length()>0) {
jsonObject = (JSONObject) jsonObject.get("rows");
jsonObject = (JSONObject) jsonObject.get("row");
System.out.println("row : "+jsonObject.toString());
dbStatus = jsonObject.getInt(DB_STATUS_COLUMN_NAME);
System.out.println(DB_STATUS_COLUMN_NAME+" : "+dbStatus);
} |
Ëæºó£¬×î³õµÄÊý¾Ý¿â״ֵ̬±»·ÅÔÚÁíÒ»¸ö JSON ¶ÔÏóÖС£
¶øÇÒËüʹÓà Data REST API ´æ´¢ÔÚ Mobile Data
ÖС£
//rest api url to write new mobile data object
String Url_value = "https://mobile.ng.bluemix.net:443/data/rest/v1/apps/"+APP_ID+"/uploads"; |
ÿ¸ôÒ»·ÖÖÓ£¬»áÕë¶Ô֮ǰ´æ´¢ÔÚ Mobile Data ÖеÄÖµÀ´¼ì²éµ±Ç°µÄÊý¾Ý¿â״̬¡£Data
REST API ÓÃÓÚÔÚ Mobile Data ÖвéѯÒÔǰ´æ´¢µÄ״̬¡£
//rest api url to read mobile data object with object id of DB_ROW_COLUMN_VALUE
String Url_value =
"https://mobile.ng.bluemix.net:443/data/rest/v1/apps/"+APP_ID+"/objects/"+DB_ROW_COLUMN_VALUE |
À´×Ô Mobile Data µÄÏìÓ¦Ò²½«ÒÔ JSON ¸ñʽ·µ»Ø£¬²¢»ñµÃ½âÎö£¬ÒÔ±ã»ñȡ֮ǰ´æ´¢µÄÊý¾Ý¿â״̬¡£
//parse "name" attribute in json object to get db status value in "DB_ROW_COLUMN_VALUE:dbStatus"
int dbStatus = -3;
if (jsonArray.length()==0) {
System.out.println("dbStatus="+dbStatus);
} else {
String name = null;
jsonObject = (JSONObject) jsonArray.get(0);
System.out.println("object : "+jsonObject.toString());
System.out.println("attributes : "+jsonObject.get("attributes"));
jsonObject = (JSONObject) jsonObject.get("attributes");
System.out.println("object : "+jsonObject.get("name"));
name = (String) jsonObject.get("name");
System.out.println("name="+name);
dbStatus = Integer.parseInt(name.substring(name.indexOf(':')+1));
System.out.println("dbStatus="+dbStatus);
} |
Èç¹ûÊý¾Ý¿â״̬ÒѸü¸Ä£¬Mobile Data »áµÃµ½¸üУ¬Ê¹ÓÃÎÒÃǵÄÍÆËÍÏûÏ¢ÐγÉÒ»¸ö
JSON ¶ÔÏó£¬Ê¹Óà Push REST API ·¢Ë͸öÔÏó×÷ÎªÍÆËÍ֪ͨ¡£
//use json object format for push message with message content of "DB_ROW_COLUMN_VALUE:dbStatus"
String message = "{ \"message\": { \"alert\": \""+DB_ROW_COLUMN_VALUE+":"+dbStatus+"\" },
\"target\": { \"platforms\":
[\"G\"] } }";
//rest api url to send push notification
String Url_value = "https://mobile.ng.bluemix.net:443/push/v1/apps/"+APP_ID+"/messages"; |
Äú¿ÉÒԱ༠DBStatListener.java ÎļþÖеĴúÂëÀ´¸ü¸ÄÒ»·ÖÖÓ¼ä¸ôʱ¼ä±í¡£
publicvoid contextInitialized(ServletContextEvent event) {
scheduler = Executors.newSingleThreadScheduledExecutor();
scheduler.scheduleAtFixedRate(new DBStatRunner(),// run DBStatRunner()
0, // run after 0 minutes
1, // repeat every 1 minute
TimeUnit.MINUTES); // use minutes for the units
} |
µÚ 9 ²½. ÏÂÔØ²¢°²×° Push ÒÆ¶¯Ó¦ÓóÌÐò
ÎÒʹÓÃÀ´×Ô quickstart-push µÄ quickstart-push-android Ó¦ÓóÌÐòÏò
DBStat ÍÆËÍ·þÎñ×¢²áÎÒµÄ Android É豸¡£ÄúÐèÒª°²×° Google Play Services
¿â²¢ÎªËü´´½¨Ò»¸ö Eclipse ÏîÄ¿£¬È»ºóÔÚ Eclipse ÏîÄ¿ÖÐʹÓà quickstart-push-android
Ó¦ÓóÌÐò¡£
Google Play ·þÎñ
1.ÔËÐÐ Android SDK Manager£¨´Ó Eclipse
»òÃüÁîÐУ©¡£
2.´Ó Extras packages ²¿·Ö°²×° Google Play
·þÎñ¡£
3.ÔÚÄú»úÆ÷Éϰ²×°µÄ Google Play ·þÎñÎļþÖÐÕÒµ½ google-play-services_lib
Îļþ¼Ð¡£ÔÚÎҵĻúÆ÷ÖУ¬´ËÎļþ¼ÐµÄ·¾¶Îª£ºsdk\extras\google\google_play_services\libproject\google-play-services_lib¡£
4.ÔÚ Eclipse ÖУ¬Ñ¡Ôñ Import > Android
> Existing Android Code Into Workspace > Next¡£
5.Root Directory£º<ÕÒµ½²¢Ñ¡Ôñ google-play-services_lib
Îļþ¼Ð>¡£
6.¹´Ñ¡ ¡°Copy projects into workspace¡±¡£
7.µ¥»÷ Finish¡£
Èç¹ûд´½¨µÄ Eclipse ÏîĿûÓбàÒ룬Çë¼ì²é .classpath
ºÍ project.properties ÎļþµÄÄÚÈÝ¡£
.classpath ¿´ÆðÀ´Ó¦ÀàËÆÓÚ£º
<classpath> <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/> <classpathentry kind="src" path="src"/> <classpathentry kind="src" path="gen"/> <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/> <classpathentry kind="output" path="bin/classes"/> </classpath> |
project.properties Îļþ¿´ÆðÀ´Ó¦ÀàËÆÓÚ£º
target=Google Inc.:Google APIs (x86 System Image):19
android.library=true |
ÔÚ Eclipse ÖÐˢиÃÏîÄ¿¡£ÄúÏÖÔڻῴµ½ÔÚ Eclipse ÏîÄ¿µÄ google-play-services_lib\bin
Ŀ¼ÖÐÉú³ÉÁË google-play-services_lib.jar Îļþ¡£
ÏÖÔÚÎÒÃǿɼÌÐøÏÂÔØ Push Ó¦ÓóÌÐò²¢ÎªËü´´½¨Ò»¸ö Eclipse ÏîÄ¿¡£
Push ÒÆ¶¯Ó¦ÓóÌÐò
1.ÏÂÔØ quickstart-push¡£
2.ÕÒµ½ quickstart-push Ŀ¼ÖÐµÄ quickstart-push-android
Îļþ¼Ð¡£
3.ÔÚ Eclipse ÖУ¬Ñ¡Ôñ Import > Android
> Existing Android Code Into Workspace > Next¡£
4.Root Directory£º<ÕÒµ½²¢Ñ¡Ôñ google-play-services_lib
Îļþ¼Ð>¡£
5.¹´Ñ¡ ¡°Copy projects into workspace¡±¡£
6.µ¥»÷ Finish¡£
Èç¹û .classpath ÎļþÖаüº¬ÒÔÏÂÁ½¸ö¶îÍâµÄÏîÄ¿ÐУ¬É¾³ýËüÃÇ£º
<classpathentry combineaccessrules="false" kind="src" path="/IBMBluemix_AndroidSDK"/> <classpathentry combineaccessrules="false" kind="src" path="/PushWorks_AndroidSDK"/> |
´Ó Bluemix SDK ibm-bluemix-sdk-android.zip
Îļþ»ñÈ¡ÒÔÏÂÁ½¸ö jar Îļþ£¬²¢½«ËüÃÇÌí¼Óµ½ Eclipse д´½¨µÄÏîÄ¿µÄ libs Îļþ¼ÐÖУº
ibmbluemix.jar ibmpush.jar |
±à¼ assets\bluelist.properties Îļþ²¢ÊäÈëÄúµÄÐÅÏ¢£º
applicationID=6e18da73-08e9-4d35-9190-a422541ffe07 applicationSecret=322212ee2e2ad64636791bb2fb03b0f4760ebfa8 applicationRoute=DBStat.mybluemix.net |
Èç¹ûд´½¨µÄ Eclipse ÏîĿûÓбàÒ룬Çë¼ì²é .classpath ºÍ project.properties
ÎļþµÄÄÚÈÝ¡£
.classpath Îļþ¿´ÆðÀ´Ó¦ÀàËÆÓÚ£º
<classpath> <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/> <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/> <classpathentry kind="src" path="src"/> <classpathentry kind="src" path="gen"/> <classpathentry kind="output" path="bin/classes"/> </classpath> |
project.properties Îļþ¿´ÆðÀ´Ó¦ÀàËÆÓÚ£º
target=Google Inc.:Google APIs:19 android.library.reference.1=..\\google-play-services_lib |
ÔÚ Eclipse ÖÐˢиÃÏîÄ¿¡£ÄúÏÖÔÚÓ¦Äܽ«Push Ó¦ÓóÌÐò°²×°ÔÚÄúµÄ Android É豸ÉÏ¡£
ÓÒ¼üµ¥»÷ <ÏîÄ¿Ãû³Æ> > Run As > Android Application
À´°²×° QuickStartPushDemo_Android.apk¡£
Çë×¢Ò⣬ÔÚ Android É豸ÉÏ£¬°²×°µÄÓ¦ÓóÌÐòÃûΪ PushServiceQuickStart¡£Ê×´ÎÔËÐиÃÓ¦ÓóÌÐòºó£¬Äú»áÔÚÆÁÄ»ÉÏ¿´µ½ÄúµÄÉ豸ÒÑ×¢²á¡£
ʾÀý£º
É豸ÒÑÏò Push ·þÎñ×¢²á
É豸 Id£º6515ed621fde007c807c4130
µÚ 10 ²½. ÏÂÔØ²¢°²×°Ê¾Àý Android ÒÆ¶¯Ó¦ÓóÌÐò´úÂë
ÎÒʹÓÃÁË bluelist-mobiledata Ó¦ÓóÌÐòÔ´´úÂë×÷Ϊ DBStat ʾÀýÒÆ¶¯Ó¦ÓóÌÐòµÄ»ù´¡¡£bluelist
ÒÆ¶¯Êý¾ÝÓ¦ÓóÌÐòµÄÔ´´úÂëÒѸü¸Ä£¬ÒÔ¼ò»¯ÆÁÄ»ÔªËØ£¬Ìí¼ÓÁËÒ»¸öˢа´Å¥¹©±¾½Ì³ÌʹÓá£ÏÂÔØ´úÂ벢ΪËü´´½¨Ò»¸ö
Eclipse ÏîÄ¿¡£
DBStat ÒÆ¶¯Ó¦ÓóÌÐò
1.Get DBStat ÒÆ¶¯Ó¦ÓóÌÐò£ºgit clone https://hub.jazz.net/git/bluebrain/DBStatMobileApp¡£
2.ÔÚ Eclipse ÖУ¬Ñ¡Ôñ Import > Android
> Existing Android Code Into Workspace > Next¡£
3.Root Directory£º<ÕÒµ½²¢Ñ¡Ôñ DBStatMobileApp
Îļþ¼Ð>¡£
4.¹´Ñ¡ ¡°Copy projects into workspace¡±¡£
5.µ¥»÷ Finish¡£
´Ó Bluemix SDK ibm-bluemix-sdk-android.zip
Îļþ»ñÈ¡ÒÔÏ 4 ¸ö jar Îļþ£¬²¢½«ËüÃÇÌí¼Óµ½ Eclipse д´½¨µÄÏîÄ¿µÄ libs Îļþ¼ÐÖУº
ibmbluemix.jar ibmcloudcode.jar ibmdata.jar ibmfilesync.jar |
±à¼ assets\bluelist.properties Îļþ²¢ÊäÈëÄúµÄÐÅÏ¢£º
applicationID=6e18da73-08e9-4d35-9190-a422541ffe07 applicationSecret=322212ee2e2ad64636791bb2fb03b0f4760ebfa8 applicationRoute=DBStat.mybluemix.net |
ÔÚ Eclipse ÖÐˢиÃÏîÄ¿¡£Èç¹ûд´½¨µÄ Eclipse ÏîĿûÓбàÒ룬Çë¼ì²é .classpath
ºÍ project.properties ÎļþµÄÄÚÈÝ¡£
.classpath Îļþ¿´ÆðÀ´Ó¦ÀàËÆÓÚ£º
<classpath> <classpathentry kind="src" path="src"/> <classpathentry kind="src" path="gen"/> <classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/> <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/> <classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/> <classpathentry kind="output" path="bin/classes"/> </classpath> |
project.properties Îļþ¿´ÆðÀ´Ó¦ÀàËÆÓÚ£º
target=android-19 android.library=false |
ÔÚ Eclipse ÖÐˢиÃÏîÄ¿¡£ÄúÏÖÔÚÓ¦Äܽ« DBStat Ó¦ÓóÌÐò°²×°ÔÚÄúµÄ Android É豸ÉÏ¡£
ÓÒ¼üµ¥»÷ <DBStat ÏîÄ¿Ãû³Æ> > Run As > Android Application
À´°²×° DBStat.apk
µÚ 11 ²½. ÏÂÔØ²¢°²×° CF ÃüÁîÐÐ
´Ó https://github.com/cloudfoundry/cli/releases »ñÈ¡ CF
ÃüÁîÐв¢°²×°Ëü¡£ÏÂÒ»½Ú»áʹÓà CF ÃüÁîÐн« DBStat Web Ó¦ÓóÌÐòÍÆË͵½ Bluemix¡£
µÚ 12 ²½. ½«Ê¾Àý Web Ó¦ÓóÌÐò²¿Êðµ½ Bluemix
ÄúÐèҪʹÓà cf ÃüÁ DBStat Web Ó¦ÓóÌÐòÍÆË͵½ Bluemix¡£Ö´ÐÐÒÔϲ½Ö裺
1.cd <DBStatWebApp ÎļþËùÔÚµÄĿ¼>
2.cf login
3.ÊäÈëÄúÓÃÓڵǼµ½ Bluemix µÄ IBM id£º
<µç×ÓÓʼþ>
4.<ÃÜÂë>
Äú»á¿´µ½Ò»¸öÀàËÆÏÂͼµÄÆÁÄ»£º
cf login
API endpoint: https://api.ng.bluemix.net
Email>
Password>
Authenticating...
OK
Targeted org
Targeted space dev
API endpoint: https://api.ng.bluemix.net (API version: 2.4.0)
User:
Org:
Space: dev |
²âÊÔ½á¹û
ÔÚ Bluemix Öгɹ¦°²×°²¢Æô¶¯ DBStat Web Ó¦ÓóÌÐòºó£¬ÄúÐèÒªÔÚä¯ÀÀÆ÷ÖÐͨ¹ý http://DBStat.mybluemix.net
µØÖ··ÃÎʸà Web Ó¦ÓóÌÐòÒ»´Î£¬ÒÔ±ãÆô¶¯ Liberty Ó¦ÓóÌÐò³õʼ»¯¡£ÄúÓ¦µÈ´ýÔ¼ 30 Ã룬µÚÒ»´Î³õʼ»¯²Å»áÍê³É¡£µÚÒ»´Î³õʼ»¯Ö®ºó£¬¿ÉÒÔÔÚÄúµÄ
Android É豸ÉÏÔËÐÐ DBStat ÒÆ¶¯Ó¦ÓóÌÐò£¬²¢¼ì²éÄúµÄÄÚ²¿Êý¾Ý¿âÖмì²éÄúµÄ±íÖµµÄµ±Ç°×´Ì¬¡£
Èç¹ûʹÓÃÁ˱¾½Ì³ÌÖеıíºÍÊý¾Ý¿âʾÀýÀ´»ñÈ¡ IBM Content Manager
ÖÐµÄ Resource Manager ״̬£¬ÄÇôÄúÓ¦ÔÚ DBStat ÒÆ¶¯Ó¦ÓóÌÐòÖп´µ½×´Ì¬ <RM_DB_name>:<single_digit>¡£¶ÔÓÚÎÒ°²×°µÄ
IBM Content Manager£¬ÔÚ Resource Manager ÔËÐÐʱÎÒ¿´µ½ÁË rmdb:2
״̬¡£Èç¹û Resource Manager Òѹرգ¬ÄÇôÔÚÒ»·ÖÖÓºó£¬ÎÒ»á»ñµÃÒ»ÌõÍÆËÍ֪ͨ²¢¿´µ½×´Ì¬ rmdb:6¡£

DBStat ÒÆ¶¯Ó¦ÓóÌÐòÏÔʾ¼àÊÓµÄ×ÊÔ´ÕýÔÚÔËÐÐ
½áÊøÓï
ÄúÏÖÔÚÒÑÖªµÀÈçºÎʹÓà Liberty for Java ÔËÐÐʱ´´½¨Ò»¸ö Web Ó¦ÓóÌÐò£¬ÒÔ±ã¼ì²éÒ»¸öÄÚ²¿Êý¾Ý¿âÖеıíÁÐÖµ£¬ÔڸñíÖµ¸ü¸Äʱ»á»ñÈ¡ÍÆËÍ֪ͨ£¬¶øÇÒ¿ÉÒÔ´ÓÒ»¸ö
Android ÒÆ¶¯Ó¦ÓóÌÐò²é¿´×îеıíÖµ¡£Ï£ÍûÄúÄܳɹ¦µØ¹¹½¨Ò»¸öÀàËÆÓ¦ÓóÌÐòÀ´¼àÊÓÄúµÄÄÚ²¿Êý¾Ý¿â¡£ |