Copyright (c) 2001, Junzo SATO. All rights reserved.
June 7th 2001
Cache' database and J/Link library are installed on a remote Windows2000 computer. Mathematica with J/Link is installed on a local machine, which is opening this document.
On a remote computer, the following command should be evaluated.
java com.wolfram.jlink.Install -linkname 1192 -linkmode listen -linkprotocol tcp
The mathlink connection for J/Link is established.
NOTE:
Using two computers is not essential. If the user can install both Cache' and Mathematica in a single machine, simple evaluation
<<JLink`
lnk = InstallJava[ ]
is enough. However, the separation of MathKernel with Cache' server would be effective when the user's platform is not supported by Cache' or when the stability of the computation is required.
![[Graphics:Images/CacheJava_gr_1.gif]](Images/CacheJava_gr_1.gif)
![[Graphics:Images/CacheJava_gr_2.gif]](Images/CacheJava_gr_2.gif)
![[Graphics:Images/CacheJava_gr_4.gif]](Images/CacheJava_gr_4.gif)
ObjectFactory is loaded.
![[Graphics:Images/CacheJava_gr_6.gif]](Images/CacheJava_gr_6.gif)
NewObjectFactory[] establishes a connection to the specified namespace in Cache'.
![[Graphics:Images/CacheJava_gr_8.gif]](Images/CacheJava_gr_8.gif)
![[Graphics:Images/CacheJava_gr_9.gif]](Images/CacheJava_gr_9.gif)
In this example, connection to the namespace "ZIP" which is prepared in Cache' is established.
![[Graphics:Images/CacheJava_gr_10.gif]](Images/CacheJava_gr_10.gif)
As the following output shows, the connection between J/Link and Cache' is 'local' inside the remote computer.
![[Graphics:Images/CacheJava_gr_12.gif]](Images/CacheJava_gr_12.gif)
Connection -> cn_iptcp:127.0.0.1[1972]:ZIP |
Cache' Version -> Cache for Windows NT (Intel) 4.0 (Build 135.1U su) Fri Dec 29 2000 15:45:52 EST |
Server Version -> 4.0.0.381 |
Zip.ZipTable holds zip data and queries.
![[Graphics:Images/CacheJava_gr_13.gif]](Images/CacheJava_gr_13.gif)
First record in the Zip.ZipTable is retrieved using an object id.
![[Graphics:Images/CacheJava_gr_15.gif]](Images/CacheJava_gr_15.gif)
![[Graphics:Images/CacheJava_gr_17.gif]](Images/CacheJava_gr_17.gif)
![[Graphics:Images/CacheJava_gr_18.gif]](Images/CacheJava_gr_18.gif)
![[Graphics:Images/CacheJava_gr_20.gif]](Images/CacheJava_gr_20.gif)
Fields of the obj are as follows.
![[Graphics:Images/CacheJava_gr_21.gif]](Images/CacheJava_gr_21.gif)
![[Graphics:Images/CacheJava_gr_23.gif]](Images/CacheJava_gr_23.gif)
Values of the first object are listed.
![[Graphics:Images/CacheJava_gr_24.gif]](Images/CacheJava_gr_24.gif)
01101 |
060 |
0600000 |
–kŠC“¹ |
ˆÈ‰º‚ÉŒfÚ‚ª‚È‚¢ê‡ |
ŽD–yŽs’†‰›‹æ |
ί¶²ÄÞ³ |
»¯ÎßÛ¼Á³µ³¸ |
²¶Æ¹²»²¶ÞŲÊÞ±² |
0 |
0 |
0 |
0 |
0 |
0 |
Compiled query getTown(zip7) in Zip.ZipTable class is accessible from Mathematica. It takes one argument zip7, or zip code with seven digits, and returns corresponding area name.
![[Graphics:Images/CacheJava_gr_25.gif]](Images/CacheJava_gr_25.gif)
Information about the result columns is retrieved.
![[Graphics:Images/CacheJava_gr_27.gif]](Images/CacheJava_gr_27.gif)
![[Graphics:Images/CacheJava_gr_29.gif]](Images/CacheJava_gr_29.gif)
![[Graphics:Images/CacheJava_gr_30.gif]](Images/CacheJava_gr_30.gif)
False | 1 | zip7 | zip7 | String |
False | 2 | kanjiPref | kanjiPref | String |
False | 3 | kanjiCity | kanjiCity | String |
False | 4 | kanjiTown | kanjiTown | String |
False | 5 | kanaPref | kanaPref | String |
False | 6 | kanaCity | kanaCity | String |
False | 7 | kanaTown | kanaTown | String |
![[Graphics:Images/CacheJava_gr_31.gif]](Images/CacheJava_gr_31.gif)
![[Graphics:Images/CacheJava_gr_32.gif]](Images/CacheJava_gr_32.gif)
![[Graphics:Images/CacheJava_gr_33.gif]](Images/CacheJava_gr_33.gif)
Information about parameters of the query is retrieved.
![[Graphics:Images/CacheJava_gr_35.gif]](Images/CacheJava_gr_35.gif)
![[Graphics:Images/CacheJava_gr_37.gif]](Images/CacheJava_gr_37.gif)
![[Graphics:Images/CacheJava_gr_38.gif]](Images/CacheJava_gr_38.gif)
1 | paramZip7 | String |
Query is executed.
![[Graphics:Images/CacheJava_gr_39.gif]](Images/CacheJava_gr_39.gif)
Result of the query is shown.
![[Graphics:Images/CacheJava_gr_40.gif]](Images/CacheJava_gr_40.gif)
![[Graphics:Images/CacheJava_gr_41.gif]](Images/CacheJava_gr_41.gif)
ResultSet is discarded.
![[Graphics:Images/CacheJava_gr_44.gif]](Images/CacheJava_gr_44.gif)
![[Graphics:Images/CacheJava_gr_45.gif]](Images/CacheJava_gr_45.gif)
The query method getZipCode(kanjiPref, kanjiCity) returns a list of zip7 and kanjiTown.
![[Graphics:Images/CacheJava_gr_46.gif]](Images/CacheJava_gr_46.gif)
![[Graphics:Images/CacheJava_gr_48.gif]](Images/CacheJava_gr_48.gif)
![[Graphics:Images/CacheJava_gr_50.gif]](Images/CacheJava_gr_50.gif)
False | 1 | zip7 | zip7 | String |
False | 2 | kanjiTown | kanjiTown | String |
![[Graphics:Images/CacheJava_gr_51.gif]](Images/CacheJava_gr_51.gif)
![[Graphics:Images/CacheJava_gr_53.gif]](Images/CacheJava_gr_53.gif)
![[Graphics:Images/CacheJava_gr_55.gif]](Images/CacheJava_gr_55.gif)
1 | paramKanjiPref | String |
2 | paramKanjiCity | String |
![[Graphics:Images/CacheJava_gr_56.gif]](Images/CacheJava_gr_56.gif)
![[Graphics:Images/CacheJava_gr_57.gif]](Images/CacheJava_gr_57.gif)
![[Graphics:Images/CacheJava_gr_104.gif]](Images/CacheJava_gr_104.gif)
![[Graphics:Images/CacheJava_gr_105.gif]](Images/CacheJava_gr_105.gif)
Instead of generating precompiled queries in Cache' classes, it is possible to use a dynamic SQL command.
![[Graphics:Images/CacheJava_gr_106.gif]](Images/CacheJava_gr_106.gif)
The ResultSet object is created.
![[Graphics:Images/CacheJava_gr_108.gif]](Images/CacheJava_gr_108.gif)
Information about resulting columns is shown.
![[Graphics:Images/CacheJava_gr_110.gif]](Images/CacheJava_gr_110.gif)
![[Graphics:Images/CacheJava_gr_112.gif]](Images/CacheJava_gr_112.gif)
True | 1 | ID | ID | int |
False | 2 | zip7 | zip7 | String |
False | 3 | kanjiPref | kanjiPref | String |
False | 4 | kanjiCity | kanjiCity | String |
False | 5 | kanjiTown | kanjiTown | String |
![[Graphics:Images/CacheJava_gr_113.gif]](Images/CacheJava_gr_113.gif)
There is nothing different in executing squery and receiving its result with precompiled query.
![[Graphics:Images/CacheJava_gr_115.gif]](Images/CacheJava_gr_115.gif)
![[Graphics:Images/CacheJava_gr_116.gif]](Images/CacheJava_gr_116.gif)
![[Graphics:Images/CacheJava_gr_224.gif]](Images/CacheJava_gr_224.gif)
![[Graphics:Images/CacheJava_gr_225.gif]](Images/CacheJava_gr_225.gif)
Connection to the namespace ZIP is closed.
![[Graphics:Images/CacheJava_gr_226.gif]](Images/CacheJava_gr_226.gif)
![[Graphics:Images/CacheJava_gr_227.gif]](Images/CacheJava_gr_227.gif)