Ruby access to timesten
Anyone ever accessed timesten from Ruby?
I need to access timesten from Ruby. Anyone can please help me out?
Thanks
Anyone ever accessed timesten from Ruby?
I need to access timesten from Ruby. Anyone can please help me out?
Thanks
Similar Messages
-
Generating Ruby Web Service Access Classes from a WSDL
If you have tried to consume a web service from Ruby you surely have noticed how annoying is to write manually all the Ruby code just to invoke a service with complext input parameters' structure:
- You have to know what do the input parameters, their structure and type look like;
- You have to write Ruby classes for them to encapsulate the structures;
- You have to instantiate these classes and pass the objects to the web service proxy class;
- You have to interprete the output parameters.
All this is not impossible of course, but if you are just consumer of the web service and not the developer, if you don't have the exact documentation, you have to read the WSDL description of the service and create the Ruby classes (structures) for the parameters.
Fortunately there is a small, though handy tool, called <b>wsdl2ruby.rb</b>. It accomplishes all these boring tasks for you.
In the following example I will try to show you how <b>wsdl2ruby</b> can be used to generate Ruby classes for accessing a SAP NetWeaver web service, called <b>CreditChecker1</b> (a web service for checking if a person is reliable credit consumer).
To generate the necessary classes we will create a ruby script. Let us name it <b>ws2rgen.rb</b>. Here is what this file looks like:
# Import the wsdl2ruby library.
require 'wsdl/soap/wsdl2ruby'
require 'logger'
# Callback function for the WSDL 2 Ruby generation options.
def getWsdlOpt(s)
optcmd= {}
s << "Service"
optcmd['classdef'] = s
#should work but doesn't, driver name is derived from classname
#if you specify both it breaks, same thing for client_skelton
#optcmd['driver'] = s
optcmd['driver'] = nil
#optcmd['client_skelton'] = nil
optcmd['force'] = true
return optcmd
end
# Create logger.
logger = Logger.new(STDERR)
# Create WSDL2Ruby object and generate.
worker = WSDL::SOAP::WSDL2Ruby.new
worker.logger = logger
# WSDL file location.
worker.location = "http://mysapserver:53000/CreditChecker1/Config1?wsdl"
# Where to generate.
worker.basedir = "temp"
# Set options.
worker.opt.update(getWsdlOpt("Service"))
# Heat.
worker.run
The procedure is straightforward. First we create the WSDL2Ruby object, set its properties <b>location</b> and <b>basedir</b> and then set all other options via the callback function <b>getWsdlOpt()</b>. For further information about these parameters one could consult the source code of wsdl2ruby or contact the developers. Nevertheless the default options are pretty satisfactory. With the last line we start the generation. Two Ruby files will be generated in the <b>temp</b> folder, which is a subfolder of the script's current folder. <b>Please, create the folder "temp" before executing the script.</b>
This generates two files. The first one is <b>CreditChecker1Wsd.rb</b>, containing the necessary data structures:
require 'xsd/qname'
# {urn:CreditChecker1Vi}areReliable
class AreReliable
@@schema_type = "areReliable"
@@schema_ns = "urn:CreditChecker1Vi"
@@schema_qualified = "true"
@@schema_element = [["persons", "ArrayOfPerson"]]
attr_accessor :persons
def initialize(persons = nil)
@persons = persons
end
end
# {urn:CreditChecker1Vi}areReliableResponse
class AreReliableResponse
@@schema_type = "areReliableResponse"
@@schema_ns = "urn:CreditChecker1Vi"
@@schema_qualified = "true"
@@schema_element = [["response", ["ArrayOfboolean", XSD::QName.new("urn:CreditChecker1Vi", "Response")]]]
def Response
@response
end
def Response=(value)
@response = value
end
def initialize(response = nil)
@response = response
end
end
# {urn:CreditChecker1Vi}isReliable
class IsReliable
@@schema_type = "isReliable"
@@schema_ns = "urn:CreditChecker1Vi"
@@schema_qualified = "true"
@@schema_element = [["person", "Person"]]
attr_accessor :person
def initialize(person = nil)
@person = person
end
end
# {urn:CreditChecker1Vi}isReliableResponse
class IsReliableResponse
@@schema_type = "isReliableResponse"
@@schema_ns = "urn:CreditChecker1Vi"
@@schema_qualified = "true"
@@schema_element = [["response", ["SOAP::SOAPBoolean", XSD::QName.new("urn:CreditChecker1Vi", "Response")]]]
def Response
@response
end
def Response=(value)
@response = value
end
def initialize(response = nil)
@response = response
end
end
# {urn:java/lang}ArrayOfboolean
class ArrayOfboolean < ::Array
@@schema_type = "boolean"
@@schema_ns = "http://www.w3.org/2001/XMLSchema"
@@schema_element = [["boolean", ["SOAP::SOAPBoolean[]", XSD::QName.new("urn:java/lang", "boolean")]]]
end
# {urn:com.sap.scripting.test.services.creditchecker.classes}Person
class Person
@@schema_type = "Person"
@@schema_ns = "urn:com.sap.scripting.test.services.creditchecker.classes"
@@schema_element = [["age", "SOAP::SOAPInt"], ["name", "SOAP::SOAPString"], ["purse", "Purse"]]
attr_accessor :age
attr_accessor :name
attr_accessor :purse
def initialize(age = nil, name = nil, purse = nil)
@age = age
@name = name
@purse = purse
end
end
# {urn:com.sap.scripting.test.services.creditchecker.classes}Purse
class Purse
@@schema_type = "Purse"
@@schema_ns = "urn:com.sap.scripting.test.services.creditchecker.classes"
@@schema_element = [["color", "SOAP::SOAPString"], ["money", "Money"]]
attr_accessor :color
attr_accessor :money
def initialize(color = nil, money = nil)
@color = color
@money = money
end
end
# {urn:com.sap.scripting.test.services.creditchecker.classes}Money
class Money
@@schema_type = "Money"
@@schema_ns = "urn:com.sap.scripting.test.services.creditchecker.classes"
@@schema_element = [["amount", "SOAP::SOAPDouble"], ["currency", "SOAP::SOAPString"]]
attr_accessor :amount
attr_accessor :currency
def initialize(amount = nil, currency = nil)
@amount = amount
@currency = currency
end
end
# {urn:com.sap.scripting.test.services.creditchecker.classes}ArrayOfPerson
class ArrayOfPerson < ::Array
@@schema_type = "Person"
@@schema_ns = "urn:com.sap.scripting.test.services.creditchecker.classes"
@@schema_element = [["Person", ["Person[]", XSD::QName.new("urn:com.sap.scripting.test.services.creditchecker.classes", "Person")]]]
end
The second file is <b>CreditChecker1WsdDriver.rb</b>. In it you can find a generated child class of SOAP::RPC::Driver, containing all methods of this web service, so you don't need to add every method and its parameters to call the web service.
require 'CreditChecker1Wsd.rb'
require 'soap/rpc/driver'
class CreditChecker1Vi_Document < ::SOAP::RPC::Driver
DefaultEndpointUrl = "http://mysapserver:53000/CreditChecker1/Config1?style=document"
MappingRegistry = ::SOAP::Mapping::Registry.new
Methods = [
def initialize(endpoint_url = nil)
endpoint_url ||= DefaultEndpointUrl
super(endpoint_url, nil)
self.mapping_registry = MappingRegistry
init_methods
end
private
def init_methods
Methods.each do |definitions|
opt = definitions.last
if opt[:request_style] == :document
add_document_operation(*definitions)
else
add_rpc_operation(*definitions)
qname = definitions[0]
name = definitions[2]
if qname.name != name and qname.name.capitalize == name.capitalize
::SOAP::Mapping.define_singleton_method(self, qname.name) do |*arg|
__send__(name, *arg)
end
end
end
end
end
end
There is a problem with this script, since the <b>Methods</b> array is empty. I suppose it is due to the imports in the SAP NetWeaver WSDL, maybe wsdl2ruby is not mighty enough to handle these WSDL imports. When I succeed in overcoming this, I will post again in this thread to let everybody know.
Message was edited by: Vasil BachvarovHi,
I find Ruby to be really tough to consume SAP WebServices. For simple scenarios like currency conversion may it is good. But for complex scenarios such as Purchase Order entry etc..I found it very annoying to use wsdl2ruby and see that it didnt generate correct proxies.
Until wsdl2ruby is stable enough to support complex datatypes, authentication etc. my recommendation is to use JRuby and use Java Proxies generated by NW Developer studio until pure Ruby's web service support improves.
Following link might be of interest w.r.t wsdl2ruby
http://derklammeraffe.blogspot.com/2006/08/working-with-wsdl2r-soap4r-and-complex.html
Regards
Kiran -
What libraries do I need to access TT database through Perl? I'm running Perl under Solaris X86, and use the the standard PERL package with the Solaris. I'm getting the following error when I try to access the the TT DB
ld.so.1: perl: fatal: relocation error: file /usr/perl5/site_perl/5.8.4/i86pc-solaris-64int/auto/DBD/ODBC/ODBC.so: symbol SQLAllocHandle: referenced symbol not found
Does anyone know the libraray that I need, or there is some other things that I missed?You have to installed the Module DBD::TimesTen from CPAN....
Sample code is available here...
http://surachartopun.com/2007/10/timesten-sample-insert-query-database.html -
TimesTen and Ruby on Rails?
Has anyone found a way to connect Ruby on Rails to TimesTen via a database adapter?
I don't know of a direct connection, however, I have used jRuby through the typical jdbc adapter with TimesTen
-
Query in timesten taking more time than query in oracle database
Hi,
Can anyone please explain me why query in timesten taking more time
than query in oracle database.
I am mentioning in detail what are my settings and what have I done
step by step.........
1.This is the table I created in Oracle datababase
(Oracle Database 10g Enterprise Edition Release 10.2.0.1.0)...
CREATE TABLE student (
id NUMBER(9) primary keY ,
first_name VARCHAR2(10),
last_name VARCHAR2(10)
2.THIS IS THE ANONYMOUS BLOCK I USE TO
POPULATE THE STUDENT TABLE(TOTAL 2599999 ROWS)...
declare
firstname varchar2(12);
lastname varchar2(12);
catt number(9);
begin
for cntr in 1..2599999 loop
firstname:=(cntr+8)||'f';
lastname:=(cntr+2)||'l';
if cntr like '%9999' then
dbms_output.put_line(cntr);
end if;
insert into student values(cntr,firstname, lastname);
end loop;
end;
3. MY DSN IS SET THE FOLLWING WAY..
DATA STORE PATH- G:\dipesh3repo\db
LOG DIRECTORY- G:\dipesh3repo\log
PERM DATA SIZE-1000
TEMP DATA SIZE-1000
MY TIMESTEN VERSION-
C:\Documents and Settings\dipesh>ttversion
TimesTen Release 7.0.3.0.0 (32 bit NT) (tt70_32:17000) 2007-09-19T16:04:16Z
Instance admin: dipesh
Instance home directory: G:\TimestTen\TT70_32
Daemon home directory: G:\TimestTen\TT70_32\srv\info
THEN I CONNECT TO THE TIMESTEN DATABASE
C:\Documents and Settings\dipesh> ttisql
command>connect "dsn=dipesh3;oraclepwd=tiger";
4. THEN I START THE AGENT
call ttCacheUidPwdSet('SCOTT','TIGER');
Command> CALL ttCacheStart();
5.THEN I CREATE THE READ ONLY CACHE GROUP AND LOAD IT
create readonly cache group rc_student autorefresh
interval 5 seconds from student
(id int not null primary key, first_name varchar2(10), last_name varchar2(10));
load cache group rc_student commit every 100 rows;
6.NOW I CAN ACCESS THE TABLES FROM TIMESTEN AND PERFORM THE QUERY
I SET THE TIMING..
command>TIMING 1;
consider this query now..
Command> select * from student where first_name='2155666f';
< 2155658, 2155666f, 2155660l >
1 row found.
Execution time (SQLExecute + Fetch Loop) = 0.668822 seconds.
another query-
Command> SELECT * FROM STUDENTS WHERE FIRST_NAME='2340009f';
2206: Table SCOTT.STUDENTS not found
Execution time (SQLPrepare) = 0.074964 seconds.
The command failed.
Command> SELECT * FROM STUDENT where first_name='2093434f';
< 2093426, 2093434f, 2093428l >
1 row found.
Execution time (SQLExecute + Fetch Loop) = 0.585897 seconds.
Command>
7.NOW I PERFORM THE SIMILAR QUERIES FROM SQLPLUS...
SQL> SELECT * FROM STUDENT WHERE FIRST_NAME='1498671f';
ID FIRST_NAME LAST_NAME
1498663 1498671f 1498665l
Elapsed: 00:00:00.15
Can anyone please explain me why query in timesten taking more time
that query in oracle database.
Message was edited by: Dipesh Majumdar
user542575
Message was edited by:
user542575TimesTen
Hardware: Windows Server 2003 R2 Enterprise x64; 8 x Dual-core AMD 8216 2.41GHz processors; 32 GB RAM
Version: 7.0.4.0.0 64 bit
Schema:
create usermanaged cache group factCache from
MV_US_DATAMART
ORDER_DATE DATE,
IF_SYSTEM VARCHAR2(32) NOT NULL,
GROUPING_ID TT_BIGINT,
TIME_DIM_ID TT_INTEGER NOT NULL,
BUSINESS_DIM_ID TT_INTEGER NOT NULL,
ACCOUNT_DIM_ID TT_INTEGER NOT NULL,
ORDERTYPE_DIM_ID TT_INTEGER NOT NULL,
INSTR_DIM_ID TT_INTEGER NOT NULL,
EXECUTION_DIM_ID TT_INTEGER NOT NULL,
EXEC_EXCHANGE_DIM_ID TT_INTEGER NOT NULL,
NO_ORDERS TT_BIGINT,
FILLED_QUANTITY TT_BIGINT,
CNT_FILLED_QUANTITY TT_BIGINT,
QUANTITY TT_BIGINT,
CNT_QUANTITY TT_BIGINT,
COMMISSION BINARY_FLOAT,
CNT_COMMISSION TT_BIGINT,
FILLS_NUMBER TT_BIGINT,
CNT_FILLS_NUMBER TT_BIGINT,
AGGRESSIVE_FILLS TT_BIGINT,
CNT_AGGRESSIVE_FILLS TT_BIGINT,
NOTIONAL BINARY_FLOAT,
CNT_NOTIONAL TT_BIGINT,
TOTAL_PRICE BINARY_FLOAT,
CNT_TOTAL_PRICE TT_BIGINT,
CANCELLED_ORDERS_COUNT TT_BIGINT,
CNT_CANCELLED_ORDERS_COUNT TT_BIGINT,
ROUTED_ORDERS_NO TT_BIGINT,
CNT_ROUTED_ORDERS_NO TT_BIGINT,
ROUTED_LIQUIDITY_QTY TT_BIGINT,
CNT_ROUTED_LIQUIDITY_QTY TT_BIGINT,
REMOVED_LIQUIDITY_QTY TT_BIGINT,
CNT_REMOVED_LIQUIDITY_QTY TT_BIGINT,
ADDED_LIQUIDITY_QTY TT_BIGINT,
CNT_ADDED_LIQUIDITY_QTY TT_BIGINT,
AGENT_CHARGES BINARY_FLOAT,
CNT_AGENT_CHARGES TT_BIGINT,
CLEARING_CHARGES BINARY_FLOAT,
CNT_CLEARING_CHARGES TT_BIGINT,
EXECUTION_CHARGES BINARY_FLOAT,
CNT_EXECUTION_CHARGES TT_BIGINT,
TRANSACTION_CHARGES BINARY_FLOAT,
CNT_TRANSACTION_CHARGES TT_BIGINT,
ORDER_MANAGEMENT BINARY_FLOAT,
CNT_ORDER_MANAGEMENT TT_BIGINT,
SETTLEMENT_CHARGES BINARY_FLOAT,
CNT_SETTLEMENT_CHARGES TT_BIGINT,
RECOVERED_AGENT BINARY_FLOAT,
CNT_RECOVERED_AGENT TT_BIGINT,
RECOVERED_CLEARING BINARY_FLOAT,
CNT_RECOVERED_CLEARING TT_BIGINT,
RECOVERED_EXECUTION BINARY_FLOAT,
CNT_RECOVERED_EXECUTION TT_BIGINT,
RECOVERED_TRANSACTION BINARY_FLOAT,
CNT_RECOVERED_TRANSACTION TT_BIGINT,
RECOVERED_ORD_MGT BINARY_FLOAT,
CNT_RECOVERED_ORD_MGT TT_BIGINT,
RECOVERED_SETTLEMENT BINARY_FLOAT,
CNT_RECOVERED_SETTLEMENT TT_BIGINT,
CLIENT_AGENT BINARY_FLOAT,
CNT_CLIENT_AGENT TT_BIGINT,
CLIENT_ORDER_MGT BINARY_FLOAT,
CNT_CLIENT_ORDER_MGT TT_BIGINT,
CLIENT_EXEC BINARY_FLOAT,
CNT_CLIENT_EXEC TT_BIGINT,
CLIENT_TRANS BINARY_FLOAT,
CNT_CLIENT_TRANS TT_BIGINT,
CLIENT_CLEARING BINARY_FLOAT,
CNT_CLIENT_CLEARING TT_BIGINT,
CLIENT_SETTLE BINARY_FLOAT,
CNT_CLIENT_SETTLE TT_BIGINT,
CHARGEABLE_TAXES BINARY_FLOAT,
CNT_CHARGEABLE_TAXES TT_BIGINT,
VENDOR_CHARGE BINARY_FLOAT,
CNT_VENDOR_CHARGE TT_BIGINT,
ROUTING_CHARGES BINARY_FLOAT,
CNT_ROUTING_CHARGES TT_BIGINT,
RECOVERED_ROUTING BINARY_FLOAT,
CNT_RECOVERED_ROUTING TT_BIGINT,
CLIENT_ROUTING BINARY_FLOAT,
CNT_CLIENT_ROUTING TT_BIGINT,
TICKET_CHARGES BINARY_FLOAT,
CNT_TICKET_CHARGES TT_BIGINT,
RECOVERED_TICKET_CHARGES BINARY_FLOAT,
CNT_RECOVERED_TICKET_CHARGES TT_BIGINT,
PRIMARY KEY(ORDER_DATE, TIME_DIM_ID, BUSINESS_DIM_ID, ACCOUNT_DIM_ID, ORDERTYPE_DIM_ID, INSTR_DIM_ID, EXECUTION_DIM_ID,EXEC_EXCHANGE_DIM_ID),
READONLY);
No of rows: 2228558
Config:
< CkptFrequency, 600 >
< CkptLogVolume, 0 >
< CkptRate, 0 >
< ConnectionCharacterSet, US7ASCII >
< ConnectionName, tt_us_dma >
< Connections, 64 >
< DataBaseCharacterSet, AL32UTF8 >
< DataStore, e:\andrew\datacache\usDMA >
< DurableCommits, 0 >
< GroupRestrict, <NULL> >
< LockLevel, 0 >
< LockWait, 10 >
< LogBuffSize, 65536 >
< LogDir, e:\andrew\datacache\ >
< LogFileSize, 64 >
< LogFlushMethod, 1 >
< LogPurge, 0 >
< Logging, 1 >
< MemoryLock, 0 >
< NLS_LENGTH_SEMANTICS, BYTE >
< NLS_NCHAR_CONV_EXCP, 0 >
< NLS_SORT, BINARY >
< OracleID, NYCATP1 >
< PassThrough, 0 >
< PermSize, 4000 >
< PermWarnThreshold, 90 >
< PrivateCommands, 0 >
< Preallocate, 0 >
< QueryThreshold, 0 >
< RACCallback, 0 >
< SQLQueryTimeout, 0 >
< TempSize, 514 >
< TempWarnThreshold, 90 >
< Temporary, 1 >
< TransparentLoad, 0 >
< TypeMode, 0 >
< UID, OS_OWNER >
ORACLE:
Hardware: Sunos 5.10; 24x1.8Ghz (unsure of type); 82 GB RAM
Version 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
Schema:
CREATE MATERIALIZED VIEW OS_OWNER.MV_US_DATAMART
TABLESPACE TS_OS
PARTITION BY RANGE (ORDER_DATE)
PARTITION MV_US_DATAMART_MINVAL VALUES LESS THAN (TO_DATE(' 2007-11-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
LOGGING
NOCOMPRESS
TABLESPACE TS_OS,
PARTITION MV_US_DATAMART_07_NOV_D1 VALUES LESS THAN (TO_DATE(' 2007-11-11 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
LOGGING
NOCOMPRESS
TABLESPACE TS_OS,
PARTITION MV_US_DATAMART_07_NOV_D2 VALUES LESS THAN (TO_DATE(' 2007-11-21 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
LOGGING
NOCOMPRESS
TABLESPACE TS_OS,
PARTITION MV_US_DATAMART_07_NOV_D3 VALUES LESS THAN (TO_DATE(' 2007-12-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
LOGGING
NOCOMPRESS
TABLESPACE TS_OS,
PARTITION MV_US_DATAMART_07_DEC_D1 VALUES LESS THAN (TO_DATE(' 2007-12-11 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
LOGGING
NOCOMPRESS
TABLESPACE TS_OS,
PARTITION MV_US_DATAMART_07_DEC_D2 VALUES LESS THAN (TO_DATE(' 2007-12-21 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
LOGGING
NOCOMPRESS
TABLESPACE TS_OS,
PARTITION MV_US_DATAMART_07_DEC_D3 VALUES LESS THAN (TO_DATE(' 2008-01-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
LOGGING
NOCOMPRESS
TABLESPACE TS_OS,
PARTITION MV_US_DATAMART_08_JAN_D1 VALUES LESS THAN (TO_DATE(' 2008-01-11 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
LOGGING
NOCOMPRESS
TABLESPACE TS_OS,
PARTITION MV_US_DATAMART_08_JAN_D2 VALUES LESS THAN (TO_DATE(' 2008-01-21 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
LOGGING
NOCOMPRESS
TABLESPACE TS_OS,
PARTITION MV_US_DATAMART_08_JAN_D3 VALUES LESS THAN (TO_DATE(' 2008-02-01 00:00:00', 'SYYYY-MM-DD HH24:MI:SS', 'NLS_CALENDAR=GREGORIAN'))
LOGGING
NOCOMPRESS
TABLESPACE TS_OS,
PARTITION MV_US_DATAMART_MAXVAL VALUES LESS THAN (MAXVALUE)
LOGGING
NOCOMPRESS
TABLESPACE TS_OS
NOCACHE
NOCOMPRESS
NOPARALLEL
BUILD DEFERRED
USING INDEX
TABLESPACE TS_OS_INDEX
REFRESH FAST ON DEMAND
WITH PRIMARY KEY
ENABLE QUERY REWRITE
AS
SELECT order_date, if_system,
GROUPING_ID (order_date,
if_system,
business_dim_id,
time_dim_id,
account_dim_id,
ordertype_dim_id,
instr_dim_id,
execution_dim_id,
exec_exchange_dim_id
) GROUPING_ID,
/* ============ DIMENSIONS ============ */
time_dim_id, business_dim_id, account_dim_id, ordertype_dim_id,
instr_dim_id, execution_dim_id, exec_exchange_dim_id,
/* ============ MEASURES ============ */
-- o.FX_RATE /* FX_RATE */,
COUNT (*) no_orders,
-- SUM(NO_ORDERS) NO_ORDERS,
-- COUNT(NO_ORDERS) CNT_NO_ORDERS,
SUM (filled_quantity) filled_quantity,
COUNT (filled_quantity) cnt_filled_quantity, SUM (quantity) quantity,
COUNT (quantity) cnt_quantity, SUM (commission) commission,
COUNT (commission) cnt_commission, SUM (fills_number) fills_number,
COUNT (fills_number) cnt_fills_number,
SUM (aggressive_fills) aggressive_fills,
COUNT (aggressive_fills) cnt_aggressive_fills,
SUM (fx_rate * filled_quantity * average_price) notional,
COUNT (fx_rate * filled_quantity * average_price) cnt_notional,
SUM (fx_rate * fills_number * average_price) total_price,
COUNT (fx_rate * fills_number * average_price) cnt_total_price,
SUM (CASE
WHEN order_status = 'C'
THEN 1
ELSE 0
END) cancelled_orders_count,
COUNT (CASE
WHEN order_status = 'C'
THEN 1
ELSE 0
END
) cnt_cancelled_orders_count,
-- SUM(t.FX_RATE*t.NO_FILLS*t.AVG_PRICE) AVERAGE_PRICE,
-- SUM(FILLS_NUMBER*AVERAGE_PRICE) STAGING_AVERAGE_PRICE,
-- COUNT(FILLS_NUMBER*AVERAGE_PRICE) CNT_STAGING_AVERAGE_PRICE,
SUM (routed_orders_no) routed_orders_no,
COUNT (routed_orders_no) cnt_routed_orders_no,
SUM (routed_liquidity_qty) routed_liquidity_qty,
COUNT (routed_liquidity_qty) cnt_routed_liquidity_qty,
SUM (removed_liquidity_qty) removed_liquidity_qty,
COUNT (removed_liquidity_qty) cnt_removed_liquidity_qty,
SUM (added_liquidity_qty) added_liquidity_qty,
COUNT (added_liquidity_qty) cnt_added_liquidity_qty,
SUM (agent_charges) agent_charges,
COUNT (agent_charges) cnt_agent_charges,
SUM (clearing_charges) clearing_charges,
COUNT (clearing_charges) cnt_clearing_charges,
SUM (execution_charges) execution_charges,
COUNT (execution_charges) cnt_execution_charges,
SUM (transaction_charges) transaction_charges,
COUNT (transaction_charges) cnt_transaction_charges,
SUM (order_management) order_management,
COUNT (order_management) cnt_order_management,
SUM (settlement_charges) settlement_charges,
COUNT (settlement_charges) cnt_settlement_charges,
SUM (recovered_agent) recovered_agent,
COUNT (recovered_agent) cnt_recovered_agent,
SUM (recovered_clearing) recovered_clearing,
COUNT (recovered_clearing) cnt_recovered_clearing,
SUM (recovered_execution) recovered_execution,
COUNT (recovered_execution) cnt_recovered_execution,
SUM (recovered_transaction) recovered_transaction,
COUNT (recovered_transaction) cnt_recovered_transaction,
SUM (recovered_ord_mgt) recovered_ord_mgt,
COUNT (recovered_ord_mgt) cnt_recovered_ord_mgt,
SUM (recovered_settlement) recovered_settlement,
COUNT (recovered_settlement) cnt_recovered_settlement,
SUM (client_agent) client_agent,
COUNT (client_agent) cnt_client_agent,
SUM (client_order_mgt) client_order_mgt,
COUNT (client_order_mgt) cnt_client_order_mgt,
SUM (client_exec) client_exec, COUNT (client_exec) cnt_client_exec,
SUM (client_trans) client_trans,
COUNT (client_trans) cnt_client_trans,
SUM (client_clearing) client_clearing,
COUNT (client_clearing) cnt_client_clearing,
SUM (client_settle) client_settle,
COUNT (client_settle) cnt_client_settle,
SUM (chargeable_taxes) chargeable_taxes,
COUNT (chargeable_taxes) cnt_chargeable_taxes,
SUM (vendor_charge) vendor_charge,
COUNT (vendor_charge) cnt_vendor_charge,
SUM (routing_charges) routing_charges,
COUNT (routing_charges) cnt_routing_charges,
SUM (recovered_routing) recovered_routing,
COUNT (recovered_routing) cnt_recovered_routing,
SUM (client_routing) client_routing,
COUNT (client_routing) cnt_client_routing,
SUM (ticket_charges) ticket_charges,
COUNT (ticket_charges) cnt_ticket_charges,
SUM (recovered_ticket_charges) recovered_ticket_charges,
COUNT (recovered_ticket_charges) cnt_recovered_ticket_charges
FROM us_datamart_raw
GROUP BY order_date,
if_system,
business_dim_id,
time_dim_id,
account_dim_id,
ordertype_dim_id,
instr_dim_id,
execution_dim_id,
exec_exchange_dim_id;
-- Note: Index I_SNAP$_MV_US_DATAMART will be created automatically
-- by Oracle with the associated materialized view.
CREATE UNIQUE INDEX OS_OWNER.MV_US_DATAMART_UDX ON OS_OWNER.MV_US_DATAMART
(ORDER_DATE, TIME_DIM_ID, BUSINESS_DIM_ID, ACCOUNT_DIM_ID, ORDERTYPE_DIM_ID,
INSTR_DIM_ID, EXECUTION_DIM_ID, EXEC_EXCHANGE_DIM_ID)
NOLOGGING
NOPARALLEL
COMPRESS 7;
No of rows: 2228558
The query (taken Mondrian) I run against each of them is:
select sum("MV_US_DATAMART"."NOTIONAL") as "m0"
--, sum("MV_US_DATAMART"."FILLED_QUANTITY") as "m1"
--, sum("MV_US_DATAMART"."AGENT_CHARGES") as "m2"
--, sum("MV_US_DATAMART"."CLEARING_CHARGES") as "m3"
--, sum("MV_US_DATAMART"."EXECUTION_CHARGES") as "m4"
--, sum("MV_US_DATAMART"."TRANSACTION_CHARGES") as "m5"
--, sum("MV_US_DATAMART"."ROUTING_CHARGES") as "m6"
--, sum("MV_US_DATAMART"."ORDER_MANAGEMENT") as "m7"
--, sum("MV_US_DATAMART"."SETTLEMENT_CHARGES") as "m8"
--, sum("MV_US_DATAMART"."COMMISSION") as "m9"
--, sum("MV_US_DATAMART"."RECOVERED_AGENT") as "m10"
--, sum("MV_US_DATAMART"."RECOVERED_CLEARING") as "m11"
--,sum("MV_US_DATAMART"."RECOVERED_EXECUTION") as "m12"
--,sum("MV_US_DATAMART"."RECOVERED_TRANSACTION") as "m13"
--, sum("MV_US_DATAMART"."RECOVERED_ROUTING") as "m14"
--, sum("MV_US_DATAMART"."RECOVERED_ORD_MGT") as "m15"
--, sum("MV_US_DATAMART"."RECOVERED_SETTLEMENT") as "m16"
--, sum("MV_US_DATAMART"."RECOVERED_TICKET_CHARGES") as "m17"
--,sum("MV_US_DATAMART"."TICKET_CHARGES") as "m18"
--, sum("MV_US_DATAMART"."VENDOR_CHARGE") as "m19"
from "OS_OWNER"."MV_US_DATAMART" "MV_US_DATAMART"
where I uncomment a column at a time and rerun. I improved the TimesTen results since my first post, by retyping the NUMBER columns to BINARY_FLOAT. The results I got were:
No Columns ORACLE TimesTen
1 1.05 0.94
2 1.07 1.47
3 2.04 1.8
4 2.06 2.08
5 2.09 2.4
6 3.01 2.67
7 4.02 3.06
8 4.03 3.37
9 4.04 3.62
10 4.06 4.02
11 4.08 4.31
12 4.09 4.61
13 5.01 4.76
14 5.02 5.06
15 5.04 5.25
16 5.05 5.48
17 5.08 5.84
18 6 6.21
19 6.02 6.34
20 6.04 6.75 -
Cannot connect to TimesTen using ODBC
Hi,
I have a TT datastore setup on an AIX server. I have a DSN on the AIX server setup in such a fashion that I can connect to the TT datastore and query the TimesTen database.
Now I installed a TT client on my windows XP laptop and I am trying to establish a connection from the ODBC to the AIX TT database.
On the XP client I have setup a dsn as test3 it has the following TTC settings:
TTC_SERVER = aix server name
TTC_SERVER_DSN = CacheData_tt70 (this is the dsn used to connect to tt dadatabase on the AIX server machine)
TTC_TIMEOUT = 60
Now when I try connecting from the Windows XP box I use the following command:
connect "dsn=test3;UID=ttadmin;PWD=ttadmin";
I am getting the following message:
12701: DatabaseCharacterSet attribute required for data store creation. Refer to the TimesTen documentation for information on selecting a character set.
What I don't understand is that I have ALREADY created the datastore on the AIX server. I do not see what the issue is here.
Last thing ......The datastore was created with character set AL32UTF8. The Oracle database that is used in the Cache Connect was created w/ a character set of AL32UTF8.
Any help from anyone would be appreciated.
Regards Chris TabbHi Susan,
The .ODBC.INI file on AIX is quite long (sorry for that). I am using the "CacheData_tt70", here it is:
# Copyright (C) 1999, 2007, Oracle. All rights reserved.
# The following are the default values for connection attributes.
# In the Data Sources defined below, if the attribute is not explicitly
# set in its entry, TimesTen 7.0 uses the defaults as
# specified below. For more information on these connection attributes,
# see the accompanying documentation.
# Lines in this file beginning with # or ; are treated as comments.
# In attribute=_value_ lines, the value consists of everything
# after the = to the end of the line, with leading and trailing white
# space removed.
# Authenticate=1 (client/server only)
# AutoCreate=1
# CkptFrequency (if Logging == 1 then 600 else 0)
# CkptLogVolume=0
# CkptRate=0 (0 = rate not limited)
# ConnectionCharacterSet (if DatabaseCharacterSet == TIMESTEN8
# then TIMESTEN8 else US7ASCII)
# ConnectionName (process argv[0])
# Connections=64
# DatabaseCharacterSet (no default)
# Diagnostics=1
# DurableCommits=0
# ForceConnect=0
# GroupRestrict (none by default)
# Isolation=1 (1 = read-committed)
# LockLevel=0 (0 = row-level locking)
# LockWait=10 (seconds)
# Logging=1 (1 = write log to disk)
# LogAutoTruncate=1
# LogBuffSize=65536 (measured in KB)
# LogDir (same as checkpoint directory by default)
# LogFileSize=64 (measured in MB)
# LogFlushMethod=0
# LogPurge=1
# MatchLogOpts=0
# MemoryLock=0 (HP-UX, Linux, and Solaris platforms only)
# NLS_LENGTH_SEMANTICS=BYTE
# NLS_NCHAR_CONV_EXCP=0
# NLS_SORT=BINARY
# OverWrite=0
# PermSize=2 (measured in MB; default is 2 on 32-bit, 4 on 64-bit)
# PermWarnThreshold=90
# Preallocate=0
# PrivateCommands=0
# PWD (no default)
# PWDCrypt (no default)
# RecoveryThreads=1
# SQLQueryTimeout=0 (seconds)
# Temporary=0 (data store is permanent by default)
# TempSize (measured in MB; default is derived from PermSize,
# but is always at least 6MB)
# TempWarnThreshold=90
# TypeMode=0 (0 = Oracle types)
# UID (operating system user ID)
# WaitForConnect=1
# Oracle Loading Attributes
# OracleID (no default)
# OraclePWD (no default)
# PassThrough=0 (0 = SQL not passed through to Oracle)
# RACCallback=1
# TransparentLoad=0 (0 = do not load data)
# Client Connection Attributes
# ConnectionCharacterSet (if DatabaseCharacterSet == TIMESTEN8
# then TIMESTEN8 else US7ASCII)
# ConnectionName (process argv[0])
# PWD (no default)
# PWDCrypt (no default)
# TTC_Server (no default)
# TTC_Server_DSN (no default)
# TTC_Timeout=60
# UID (operating system user ID)
[ODBC Data Sources]
TT_tt70=TimesTen 7.0 Driver
TpcbData_tt70=TimesTen 7.0 Driver
TptbmDataRepSrc_tt70=TimesTen 7.0 Driver
TptbmDataRepDst_tt70=TimesTen 7.0 Driver
TptbmData_tt70=TimesTen 7.0 Driver
BulkInsData_tt70=TimesTen 7.0 Driver
WiscData_tt70=TimesTen 7.0 Driver
RunData_tt70=TimesTen 7.0 Driver
CacheData_tt70=TimesTen 7.0 Driver
ttdbgdev=TimesTen 7.0 Driver
TpcbDataCS_tt70=TimesTen 7.0 Client Driver
TptbmDataCS_tt70=TimesTen 7.0 Client Driver
BulkInsDataCS_tt70=TimesTen 7.0 Client Driver
WiscDataCS_tt70=TimesTen 7.0 Client Driver
RunDataCS_tt70=TimesTen 7.0 Client Driver
ttdbgdevCS=TimesTen 7.0 Driver
# Instance-Specific System Data Store
# A predefined instance-specific data store reserved for system use.
# It provides a well-known data store for use when a connection
# is required to execute commands.
[TT_tt70]
Driver=/u01/app/oracle/TimesTen/tt70/lib/libtten.a
DataStore=/u01/app/oracle/TimesTen/tt70/info/TT_tt70
DatabaseCharacterSet=US7ASCII
# Data source for TPCB
# This data store is created on connect; if it doesn't already exist.
# (AutoCreate=1 and Overwrite=0). For performance reasons, database-
# level locking is used. However, logging is turned on. The initial
# size is set to 16MB.
[TpcbData_tt70]
Driver=/u01/app/oracle/TimesTen/tt70/lib/libtten.a
DataStore=/u01/app/oracle/TimesTen/tt70/info/DemoDataStore/TpcbData
DatabaseCharacterSet=US7ASCII
PermSize=16
WaitForConnect=0
Authenticate=0
# Data source for TPTBM demo
# This data store is created everytime the benchmark is run.
# Overwrite should always be 0 for this benchmark. All other
# attributes may be varied and performance under those conditions
# evaluated. The initial size is set to 20MB and durable commits are
# turned off.
[TptbmData_tt70]
Driver=/u01/app/oracle/TimesTen/tt70/lib/libtten.a
DataStore=/u01/app/oracle/TimesTen/tt70/info/DemoDataStore/TptbmData
DatabaseCharacterSet=US7ASCII
PermSize=20
Overwrite=0
Authenticate=0
# Source data source for TPTBM demo in replication mode
# This data store is created everytime the replication benchmark demo
# is run. This datastore is set up for the source data store.
[TptbmDataRepSrc_tt70]
Driver=/u01/app/oracle/TimesTen/tt70/lib/libtten.a
DataStore=/u01/app/oracle/TimesTen/tt70/info/DemoDataStore/TptbmDataRepSrc_tt70
DatabaseCharacterSet=US7ASCII
PermSize=20
Overwrite=0
Authenticate=0
# Destination data source for TPTBM demo in replication mode
# This data store is created everytime the replication benchmark demo
# is run. This datastore is set up for the destination data store.
[TptbmDataRepDst_tt70]
Driver=/u01/app/oracle/TimesTen/tt70/lib/libtten.a
DataStore=/u01/app/oracle/TimesTen/tt70/info/DemoDataStore/TptbmDataRepDst_tt70
DatabaseCharacterSet=US7ASCII
PermSize=20
Overwrite=0
Authenticate=0
# Data source for BULKINSERT demo
# This data store is created on connect; if it doesn't already exist
# (AutoCreate=1 and Overwrite=0).
[BulkInsData_tt70]
Driver=/u01/app/oracle/TimesTen/tt70/lib/libtten.a
DataStore=/u01/app/oracle/TimesTen/tt70/info/DemoDataStore/BulkInsData
DatabaseCharacterSet=US7ASCII
LockLevel=1
PermSize=32
WaitForConnect=0
Authenticate=0
# Data source for WISCBM demo
# This data store is created on connect if it doesn't already exist
# (AutoCreate=1 and Overwrite=0). For performance reasons,
# database-level locking is used. However, logging is turned on.
[WiscData_tt70]
Driver=/u01/app/oracle/TimesTen/tt70/lib/libtten.a
DataStore=/u01/app/oracle/TimesTen/tt70/info/DemoDataStore/WiscData
DatabaseCharacterSet=US7ASCII
LockLevel=1
PermSize=16
WaitForConnect=0
Authenticate=0
# Default Data source for TTISQL demo and utility
# Use default options.
[RunData_tt70]
Driver=/u01/app/oracle/TimesTen/tt70/lib/libtten.a
DataStore=/u01/app/oracle/TimesTen/tt70/info/DemoDataStore/RunData
DatabaseCharacterSet=US7ASCII
Authenticate=0
# Sample Data source for the xlaSimple demo
# See manual for discussion of this demo.
[Sample_tt70]
Driver=/u01/app/oracle/TimesTen/tt70/lib/libtten.a
DataStore=/u01/app/oracle/TimesTen/tt70/info/DemoDataStore/Sample
DatabaseCharacterSet=US7ASCII
TempSize=16
PermSize=16
Authenticate=0
# Sample data source using OracleId.
# Before using the CacheData DSN, uncomment both the OracleId and
# DatabaseCharacterSet attributes and insert the appropriate values for
# the name of your Oracle database and its database character set.
# See the jdbc demo README for information on how to obtain these values.
[CacheData_tt70]
Driver=/u01/app/oracle/TimesTen/tt70/lib/libtten.a
DataStore=/u01/app/oracle/TimesTen/tt70/info/DemoDataStore/Test1
DatabaseCharacterSet=AL32UTF8
OracleId=dbgdev
PermSize=16
UID=oracle
# Authenticate=1
# New data source definitions can be added below.
[ttdbgdev]
Driver=/u01/app/oracle/TimesTen/tt70/lib/libtten.so
DataStore=/u01/app/oracle/TimesTen/tt70/info/DemoDataStore/Test1
PermSize=20
TempSize=20
DatabaseCharacterSet=AL32UTF8
#UID=chris
OracleID=dbgdev
# This following sample definitions should be in the .odbc.ini file
# that is used for the TimesTen 7.0 Client.
# The Server Name is set in the TTC_SERVER attribute.
# The Server DSN is set in the TTC_SERVER_DSN attribute.
# Data source for TPCB
[TpcbDataCS_tt70]
TTC_SERVER=LocalHost_tt70
TTC_SERVER_DSN=TpcbData_tt70
# Data source for TPTBM demo
[TptbmDataCS_tt70]
TTC_SERVER=LocalHost_tt70
TTC_SERVER_DSN=TptbmData_tt70
# Data source for BULKINSERT demo
[BulkInsDataCS_tt70]
TTC_SERVER=LocalHost_tt70
TTC_SERVER_DSN=BulkInsData_tt70
# Data source for WISCBM demo
[WiscDataCS_tt70]
TTC_SERVER=LocalHost_tt70
TTC_SERVER_DSN=WiscData_tt70
# Default Data source for TTISQL demo and utility
[RunDataCS_tt70]
TTC_SERVER=LocalHost_tt70
TTC_SERVER_DSN=RunData_tt70
# Default Data Source for ttdbgdev
[ttdbgdevCS]
TTC_SERVER=LocalHost_tt70
TTC_SERVER_DSN=ttdbgdev
Now for the Windows ODBC.ini file, I am trying to use the "Test3" connection. Specifics of this connection are in the windows registry. Please note I have tried setting the connectionCharacterSet to AL32UTF8 as well as a few others:
[ODBC 32 bit Data Sources]
dwhdev=Oracle in OraHome92 (32 bit)
dwhqas=Oracle in OraHome92 (32 bit)
RunDataCS_tt70_32=TimesTen Client 7.0 (32 bit)
TpcbDataCS_tt70_32=TimesTen Client 7.0 (32 bit)
TptbmDataCS_tt70_32=TimesTen Client 7.0 (32 bit)
BulkInsDataCS_tt70_32=TimesTen Client 7.0 (32 bit)
WiscDataCS_tt70_32=TimesTen Client 7.0 (32 bit)
test1=TimesTen Client 7.0 (32 bit)
MS Access Database=Microsoft Access Driver (*.mdb) (32 bit)
Excel Files=Microsoft Excel Driver (*.xls) (32 bit)
dBASE Files=Microsoft dBase Driver (*.dbf) (32 bit)
test2=TimesTen Client 7.0 (32 bit)
test3=TimesTen Client 7.0 (32 bit)
dbgdev=Oracle in OraHome92 (32 bit)
[dwhdev]
Driver32=c:\oracle\BIN\SQORA32.DLL
[dwhqas]
Driver32=c:\oracle\BIN\SQORA32.DLL
[RunDataCS_tt70_32]
Driver32=C:\TimesTen\tt70_32\bin\ttcl70.dll
[TpcbDataCS_tt70_32]
Driver32=C:\TimesTen\tt70_32\bin\ttcl70.dll
[TptbmDataCS_tt70_32]
Driver32=C:\TimesTen\tt70_32\bin\ttcl70.dll
[BulkInsDataCS_tt70_32]
Driver32=C:\TimesTen\tt70_32\bin\ttcl70.dll
[WiscDataCS_tt70_32]
Driver32=C:\TimesTen\tt70_32\bin\ttcl70.dll
[test1]
Driver32=C:\TimesTen\tt70_32\bin\ttcl70.dll
[MS Access Database]
Driver32=C:\WINDOWS\system32\odbcjt32.dll
[Excel Files]
Driver32=C:\WINDOWS\system32\odbcjt32.dll
[dBASE Files]
Driver32=C:\WINDOWS\system32\odbcjt32.dll
[test2]
Driver32=C:\TimesTen\tt70_32\bin\ttcl70.dll
[test3]
Driver32=C:\TimesTen\tt70_32\bin\ttcl70.dll
[dbgdev]
Driver32=c:\oracle\BIN\SQORA32.DLL
Regards,
Chris -
Why do I get an error code when accessing my email?
Yahoo has updated their bookmarks to be used exclusively with the Yahoo toolbar. In the process I have lost my email account. When I try to access my email, I get an error code...... (The requested URL /mc/welcome was not found on this server.
Apache/2.2.9 (Debian) mod_jk/1.2.26 PHP/5.2.6-1+lenny4 with Suhosin-Patch mod_python/3.3.1 Python/2.5.2 mod_ruby/1.2.6 Ruby/1.8.7(2008-08-11) mod_ssl/2.2.9 OpenSSL/0.9.8g Server at us.mc816.mail.yahoo.com Port 80) ! Also I get a 404 Error message that the information is not found, no access on this serverI actually just worked it out for myself - I reentered all my data and it worked this time. But for one of the books somehow the formatting has all been messed up. Back to the drawing board...:-(
-
Creation of Procedure, view in the TimesTen IMD
Hi,
Query No. 1
Existing procedure of Oracle Database we are trying to compile in TimesTen In-Memory database.
One temporary table of that same procedure we have cached in the TimesTen IMD. but there are other objects (sequence, table, functions) in the procedure which are not cached in the TT IMD. while compilation in the TT database it is giving "table or view does not exist" error.
Is there are any solution to retrieve data from Oracle database though objects are not part of the TT IMD.
Our understanding here is, if particular Objects are cached in the TT IMD then it will access that object information from TT IMD database and rest of which are not cached in the TT IMD it should take from backend(Oracle Database). so please confirm whether our understanding is proper or not. if not then please guide us on the same.
Query No. 2
Can we create view in the TimesTen IMD for Object which are part of Oracle Database. and those objects are not cached in the TT IMD.For #1:
TimesTen does support a feature called PassThrough which allows 'transparent' access to objects in the Oracle database under specific circumstances. However, the frunctionality of PassThrough is very limited when PL/SQL is being used. In general, any object referenced by a PL/SQL procedure that is executing in TimesTen must exist in TimesTen.
Even when PassThrough can be used, queries and transactions cannot span TimesTen and Oracle. Every individual query will always execute completely in TimesTen (all objects must reside in TimesTen) or Oracle (all objects must reside in Oracle. You cannot execute a single SQL statement that references objects in both TimesTen and Oracle. Similarly, transactions on TimesTen are separate from Transactions in Oracle; we do not do any form of distributed transaction. If you update objects in both TimesTen and Oracle within one transaction you actually have two separate transactions; one in Oracle and one in TimesTen. When you commit, it is possible that one of the transactions will succeed and the other fail. This type of mixed usage is not recommended.
For #2:
No. You could cache tables from Oracle into TimesTen and then create a view in TimesTen on the cached tables.
Chris -
Creation of web service of the timesten application ( linking problem )
Hi ,
i have created the C application ( cardVerifyTxn.c accessing timesten db ) as dll.
I have compiled it and linked it .I want to deploy it as a web service in apache axis server .
Compilation and linking of service file ( ie CardVerifyTxn_svc.c )
Compilation OK .obj file created .
But on inking it's having problem . I will copy and paste the commands i used .
C:\Program Files\Microsoft Visual Studio\VC98\Bin>cl.exe /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "AXIS2_DECLARE_EXPORT" /D "AXIS2_SVR_MULTI_THREADED" /w /nologo /I %AXIS2C_HOME%\include /c C:\Dev-Cpp\MAPI\CardVerifyTxn_svc.c
its creating obj file .
Now im linking using VC++ linker.
C:\Program Files\Microsoft Visual Studio\VC98\Bin>link.exe /nologo /LIBPATH:%AX
S2C_HOME%\lib axutil.lib axiom.lib axis2_parser.lib axis2_engine.lib /DLL Ver
ficationCardDetail.dll /OUT:cardVerify.dll CardVerifyTxn_svc.obj
o/p
D:\axis2c\lib\VerificationCardDetail.dll : fatal error LNK1136: invalid or corr
pt file
Whether the syntax of the link command is right ? I have to link the obj file with a dll (ie my timesten appication ) , also with static libraries like *.lib(plz luk in the command)
I know it's not relevant to timesten , problem with the usage of Link command
( in VC++) .
plz suggest the right command .
Thanks
sanalWell, I'm not an expert on this but my experience is that you cannot link a DLL directly into another DLL or even into a .EXE. You need to create an 'import library' which is a .LIB file that contains definitions of all the entry points into the DLL and then link that .LIB into the DLL or .EXE. Then the DLL will be dynamically loaded at run time.
If I recall correctly (it is a long time since I have done this) you can create the import library at the time you create the DLL by including the /IMPLIB directive on the link command that you use to create the original DLL.
Hope that is some help...
Chris -
Are there any timesten installation for data warehouse environment?
Hi,
I wonder if there is a way to install timesten as an in memory database for data warehouse environment?
The DW today consist of a large Oralcle database and I wonder if and how a timesten implementation can be done.
what kind of application changes involve with such an implementation and so on?
I know that the answer is probably complex but if anyone knows about such an implementation and some information about it , it would be great to learn from that experience.
Thanks,
AdiAdi,
It depends on what you want to do with the data in the TimesTen database. If you know the "hot" dataset that you want to cache in TimesTen, you can use Cache Connect to Oracle to cache a subset of your Oracle tables into TimesTen. The key is to figure out what queries you want to run and see if the queries are supported in TimesTen.
Assuming you know the dataset you need to cache and you have control of your application code to change the connection to TimesTen (using ODBC or JDBC), you can give it a try. If you are using a third party tool, you need to see if the tool supports JDBC or ODBC access to the database and change the tool to point to your TimesTen database instead of the Oracle database.
If you are using the TimesTen Cache Connect to Oracle product option, data synchronization between Oracle and TimesTen is handled automatically by the product.
Without further details of what you'd like to do, it's difficult to provide more detailed recommendation.
-scheung -
Problem accessing Wiki with iPhone
Hi everyone. I just recently ran into a problem with accessing the Lion Wiki with my iPhone. Worked a week or so ago. I checked the logs and here's what I found:
Started GET "/wiki/" for xxx.xxx.xxx.xxx at Fri Sep 02
Processing by SourcesController#index as HTML
Rendered sources/index.html.erb within layouts/iphone (110.3ms)
Completed in 188ms
ActionView::Template::Error (undefined local variable or method `people_url' for #<#<Class:0x108d37738>:0x1091d15f0>):
293: <span class="title"><%= t("sources.projects.title") %></span>
294: </a></li>
295:
296: <li class="sc_people"><a href="<%= people_url %>">
297: <span class="icon"></span>
298: <span class="title"><%= t("sources.people.title") %></span>
299: </a></li>
app/views/layouts/iphone.html.erb:296:in `_app_views_layouts_iphone_html_erb___121609073_2221500700_0'
Rendered vendor/bundle/ruby/1.8/gems/actionpack-3.0.4/lib/action_dispatch/middleware/tem plates/rescues/_trace.erb (1.2ms)
Rendered vendor/bundle/ruby/1.8/gems/actionpack-3.0.4/lib/action_dispatch/middleware/tem plates/rescues/_request_and_response.erb (18.7ms)
Rendered vendor/bundle/ruby/1.8/gems/actionpack-3.0.4/lib/action_dispatch/middleware/tem plates/rescues/template_error.erb within rescues/layout (26.7ms)
I turned of the wiki and made sure the default web page could be accessed and it was, no problem. Any thoughts on a fix?This is a bug that will be adressed in an upcoming update.
A. -
Connecting to TimesTen using DataSource in WebLogic on Linux
We are trying to use weblogic 9.2 to connect to TimesTen7.0, both are on Linux.
We have installed Oracle 10g client and then installed TimesTen 7.0 Client on the Linux server hosting weblogic.
Created Client DSN in /var/TimesTen/sys.odbc.ini file as follows:
[ODBC Data Sources]
TTclientMaster=TimesTen 7.0 Client Driver
[TTclientMaster]
TTC_SERVER="TTServerHostName"
TTC_SERVER_DSN=TTmaster
When we are trying to create DataSource in weblogic Admin console it does not show up TTClient Driver in the list.
We tried setting up using "Others" for driver and databasetype but then it asks for databasename which we don't have since TT uses DSN.
We are looking for any pointers or references that can explain how to configure weblogic to use TimesTen using TT 7.0 client DSN.If you have access to a copy of TimesTen 6.0 you can look in the AppServer Configuration Guide (appsrv.pdf) that was shipped with that release. This guide is currently being rewritten and so is not yet available for 7.0.
If you can't get hold of a copy, e-mail me at [email protected] and I'll send it to you.
Chris -
Connect Timesten server remotely without using timesten client
I know it's a silly question but this is what i want to do:-
I have my java application and I want to connect to the timesten server present on remote machine and moreover I don't have the permission to intall any Timesten Client or App server(weblogic/glassfish) on timesten server. The only thing I had is my java application with plane java connection class to connect to Timesten Server from my machine.
Is this possible or not? And if it is possible please help me out with some ideas...
Thanks in advance!!!It's not possible. The client/server protocol is proprietary and undocumented and even if you could make it work it would be completely unsupported.
What you need to do is implement your own 'server' that runs on the TimesTen machine. In this server you implement all the database access requirements for your application. Your application then talks to the server using your own protocol in order to access TimesTen. Although it is more work this is a good design pattern and, if it is well designed and implemented, may actually deliver better performance than normal client/server.
Chris
Edited by: ChrisJenkins on May 25, 2012 8:21 AM -
Accessing tables from remote machine
I using the following code, to update the record from the emp table. This table is created locally in my machine.
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection conn;
String db = "jdbc:odbc:NewDsn";
String username = "test";
String password = "test";
String tableName = "emp";
conn = DriverManager.getConnection(db, username, password);
Statement stmt1 = conn.createStatement();
String update = "update " + tableName +
" set salary=salary+1000 where empid>200";
stmt1.executeUpdate(update);
I want my application to run on two different machine and the update should be made on a single table.
Please help me, how the user from other machine can access this emp table created in my local machine?I completely agree with RPriya.
jschell, If you think that it is not correct, could you please put some focus on your statementYou mean you want me to explain how database connections work in general and how jdbc drivers would use them?
Do you know how a socket works? Do you know that it requires a client and a server?
How does a socket work if there is no server?
How do database connections work in C, C++, Perl, Ruby, Python, VB, etc, when absolutely none of those use a java type 4 driver?
Do you know how the oracle oci driver work? It is not a type 4 driver.
Do you know how the jdbc-odbc bridge works with oracle? With MS SQL Server? The jdbc-odbc bridge is not a type 4 driver. -
Is timesten still using T-tree as data structure?
I just come across this paper - http://www.memdb.com/paper.pdf , this researcher do some experiments and showing that using concurrent B-tree algorithm is actually faster than T-tree operation. How do you think about this paper? Do you think actually he is using a inefficient algorithm to access T-tree? Or, Timesten already know the limitation of T-tree and have changed the internal data-structure?
Yes, we are aware of the comparisons between T-Trees, concurrent B-trees etc. At the moment TimesTen still uses T-trees but this may change in the future :-)
Chris
Maybe you are looking for
-
How can I change dot by comma in a report?
Hi. I'm working with 6.5.1, full client and webi, but I have not been able to change the numeric format 2.333,00 by 2,333.00. I mean, dot by comma for tens and dot for decimal. I checked the configuration in bo server and pc client, and the format is
-
Down arrow and contrast down keys no longer work properly
I've had this problem with my Yoga 2 Pro for a while now, and it's really frustrating. My down arrow key and brightness down key don't always work. Sometimes they both work fine; that's ok. However, sometimes both of them will simultaneously stop wor
-
Fill and save form in Acrobat Reader + checkbox problem
I use Acrobat Pro X to create fillable forms and then save the file as Reader Extended PDF - Enable Additional Features, and when I want to open it and fill it in in Acrobat Reader, I get a pop-up saying I can only save it as a blank document. Anothe
-
I'm on a new mac computer, I need to know how to get Adobe Flash up and working. I've tried uninstalling then installing again, but it's still not working.
-
hi all, how could I destroy the thread in MIDP ? it always shows true while invoking the method isAlive() on the thread. thanx