Class XmlaOlap4jDriver
- java.lang.Object
-
- org.olap4j.driver.xmla.XmlaOlap4jDriver
-
- All Implemented Interfaces:
java.sql.Driver
public class XmlaOlap4jDriver extends java.lang.Object implements java.sql.Driver
Olap4j driver for generic XML for Analysis (XMLA) providers.Since olap4j is a superset of JDBC, you register this driver as you would any JDBC driver:
Class.forName("org.olap4j.driver.xmla.XmlaOlap4jDriver");
import java.sql.Connection;
import java.sql.DriverManager;
import org.olap4j.OlapConnection;
Connection connection =
DriverManager.getConnection(
"jdbc:xmla:");
OlapConnection olapConnection =
connection.unwrap(OlapConnection.class);Note how we use the java.sql.Connection#unwrap(Class) method to down-cast the JDBC connection object to the extension
OlapConnection
object. This method is only available in JDBC 4.0 (JDK 1.6 onwards).Connection properties
Unless otherwise stated, properties are optional. If a property occurs multiple times in the connect string, the first occurrence is used.
It is also possible to pass properties to the server end-point using JDBC connection properties as part of the XMLA driver connection properties. If the JDBC URL contains properties that are not enumerated in
XmlaOlap4jDriver.Property
, they will be included as part of the SOAP PropertyList element.Property Description Server URL of HTTP server. Required. Catalog Catalog name to use. By default, the first one returned by the XMLA server will be used. Schema Schema name to use. By default, the first one returned by the XMLA server will be used. Database Name of the XMLA database. By default, the first one returned by the XMLA server will be used. Cache Class name of the SOAP cache to use. Must implement interface
XmlaOlap4jCachedProxy
. A built-in memory cache is available withXmlaOlap4jNamedMemoryCache
.By default, no SOAP query cache will be used.
Cache.* Properties to transfer to the selected cache implementation. See XmlaOlap4jCache
or your selected implementation for properties details.TestProxyCookie String that uniquely identifies a proxy object in PROXY_MAP
via which to send XMLA requests for testing purposes.Role Comma separated list of role names used for this connection (Optional).
Available role names can be retrieved viaOlapConnection.getAvailableRoleNames()
User User name to use when establishing a connection to the server. The credentials are passed using the HTTP Basic authentication protocol, but are also sent as part of the SOAP Security headers. Password Password to use when establishing a connection to the server. The credentials are passed using the HTTP Basic authentication protocol, but are also sent as part of the SOAP Security headers. - Since:
- May 22, 2007
- Author:
- jhyde, Luc Boudreau
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
XmlaOlap4jDriver.Property
Properties supported by this driver.
-
Field Summary
Fields Modifier and Type Field Description static java.util.Map<java.lang.String,XmlaOlap4jProxy>
PROXY_MAP
For testing.
-
Constructor Summary
Constructors Constructor Description XmlaOlap4jDriver()
Creates an XmlaOlap4jDriver.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
acceptsURL(java.lang.String url)
java.sql.Connection
connect(java.lang.String url, java.util.Properties info)
static java.util.concurrent.Future<byte[]>
getFuture(XmlaOlap4jProxy proxy, XmlaOlap4jServerInfos serverInfos, java.lang.String request)
Returns a future object representing an asynchronous submission of an XMLA request to a URL.int
getMajorVersion()
int
getMinorVersion()
java.util.logging.Logger
getParentLogger()
java.sql.DriverPropertyInfo[]
getPropertyInfo(java.lang.String url, java.util.Properties info)
java.lang.String
getVersion()
Returns the driver version.boolean
jdbcCompliant()
static java.lang.String
nextCookie()
Generates and returns a unique string.
-
-
-
Field Detail
-
PROXY_MAP
public static final java.util.Map<java.lang.String,XmlaOlap4jProxy> PROXY_MAP
For testing. Map from a cookie value (which is uniquely generated for each test) to a proxy object. Uses a weak hash map so that, if the code that created the proxy 'forgets' the cookie value, then the proxy can be garbage-collected.
-
-
Method Detail
-
connect
public java.sql.Connection connect(java.lang.String url, java.util.Properties info) throws java.sql.SQLException
- Specified by:
connect
in interfacejava.sql.Driver
- Throws:
java.sql.SQLException
-
acceptsURL
public boolean acceptsURL(java.lang.String url) throws java.sql.SQLException
- Specified by:
acceptsURL
in interfacejava.sql.Driver
- Throws:
java.sql.SQLException
-
getPropertyInfo
public java.sql.DriverPropertyInfo[] getPropertyInfo(java.lang.String url, java.util.Properties info) throws java.sql.SQLException
- Specified by:
getPropertyInfo
in interfacejava.sql.Driver
- Throws:
java.sql.SQLException
-
getVersion
public java.lang.String getVersion()
Returns the driver version. Not in the JDBC API.- Returns:
- Driver version
-
getMajorVersion
public int getMajorVersion()
- Specified by:
getMajorVersion
in interfacejava.sql.Driver
-
getMinorVersion
public int getMinorVersion()
- Specified by:
getMinorVersion
in interfacejava.sql.Driver
-
jdbcCompliant
public boolean jdbcCompliant()
- Specified by:
jdbcCompliant
in interfacejava.sql.Driver
-
getParentLogger
public java.util.logging.Logger getParentLogger()
- Specified by:
getParentLogger
in interfacejava.sql.Driver
-
getFuture
public static java.util.concurrent.Future<byte[]> getFuture(XmlaOlap4jProxy proxy, XmlaOlap4jServerInfos serverInfos, java.lang.String request)
Returns a future object representing an asynchronous submission of an XMLA request to a URL.- Parameters:
proxy
- Proxy via which to send the requestserverInfos
- Server infos.request
- Request- Returns:
- Future object from which the byte array containing the result of the XMLA call can be obtained
-
nextCookie
public static java.lang.String nextCookie()
Generates and returns a unique string.- Returns:
- unique string
-
-