transactd 2.2.0 → 2.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/BUILD_UNIX-JA +6 -6
- data/README +20 -18
- data/README-JA +19 -17
- data/RELEASE_NOTE +144 -0
- data/RELEASE_NOTE-JA +153 -0
- data/bin/common/tdclc_32_2_3.dll +0 -0
- data/bin/common/tdclc_64_2_3.dll +0 -0
- data/build/common/get_ruby_path.cmake +1 -1
- data/build/swig/ruby/ruby.swg +10 -9
- data/build/swig/ruby/tdclrb_wrap.cpp +1416 -561
- data/build/swig/tdcl.i +30 -3
- data/build/tdclc/tdclc.cbproj +1 -1
- data/build/tdclc/tdclc.rc +4 -4
- data/build/tdclcpp/BUILDNUMBER.txt +1 -0
- data/build/tdclcpp/tdclcpp.rc +4 -4
- data/build/tdclcpp/tdclcpp_bc.cbproj +1 -1
- data/build/tdclrb/BUILDNUMBER.txt +1 -0
- data/build/tdclrb/tdclrb.rc +4 -4
- data/source/bzs/db/engine/mysql/database.cpp +85 -41
- data/source/bzs/db/engine/mysql/database.h +35 -5
- data/source/bzs/db/engine/mysql/mysqlInternal.h +189 -37
- data/source/bzs/db/engine/mysql/mysqlThd.cpp +21 -21
- data/source/bzs/db/protocol/tdap/client/activeTable.cpp +11 -0
- data/source/bzs/db/protocol/tdap/client/activeTable.h +1 -1
- data/source/bzs/db/protocol/tdap/client/activeTableImple.h +11 -4
- data/source/bzs/db/protocol/tdap/client/client.h +30 -1
- data/source/bzs/db/protocol/tdap/client/dbDef.cpp +2 -1
- data/source/bzs/db/protocol/tdap/client/dllmain.cpp +35 -5
- data/source/bzs/db/protocol/tdap/client/field.cpp +100 -51
- data/source/bzs/db/protocol/tdap/client/field.h +7 -7
- data/source/bzs/db/protocol/tdap/client/filter.h +20 -6
- data/source/bzs/db/protocol/tdap/client/groupQuery.cpp +337 -58
- data/source/bzs/db/protocol/tdap/client/groupQuery.h +56 -13
- data/source/bzs/db/protocol/tdap/client/nsDatabase.cpp +83 -5
- data/source/bzs/db/protocol/tdap/client/nsDatabase.h +4 -1
- data/source/bzs/db/protocol/tdap/client/nsTable.cpp +2 -2
- data/source/bzs/db/protocol/tdap/client/nsTable.h +2 -1
- data/source/bzs/db/protocol/tdap/client/pooledDatabaseManager.h +20 -6
- data/source/bzs/db/protocol/tdap/client/recordset.cpp +7 -0
- data/source/bzs/db/protocol/tdap/client/recordsetImple.h +8 -4
- data/source/bzs/db/protocol/tdap/client/request.h +11 -1
- data/source/bzs/db/protocol/tdap/client/serializer.cpp +40 -2
- data/source/bzs/db/protocol/tdap/client/serializer.h +4 -2
- data/source/bzs/db/protocol/tdap/client/sqlBuilder.cpp +1 -0
- data/source/bzs/db/protocol/tdap/client/stringConverter.h +4 -4
- data/source/bzs/db/protocol/tdap/client/table.cpp +124 -71
- data/source/bzs/db/protocol/tdap/client/table.h +8 -7
- data/source/bzs/db/protocol/tdap/client/trdormapi.h +33 -1
- data/source/bzs/db/protocol/tdap/fieldComp.h +1 -1
- data/source/bzs/db/protocol/tdap/mysql/databaseSchema.cpp +3 -1
- data/source/bzs/db/protocol/tdap/mysql/recordsetReader.h +20 -4
- data/source/bzs/db/protocol/tdap/mysql/request.h +14 -0
- data/source/bzs/db/protocol/tdap/mysql/tdapCommandExecuter.cpp +132 -69
- data/source/bzs/db/protocol/tdap/tdapRequest.h +18 -4
- data/source/bzs/db/protocol/tdap/tdapSchema.cpp +32 -22
- data/source/bzs/db/protocol/tdap/tdapSchema.h +69 -4
- data/source/bzs/db/protocol/tdap/tdapcapi.h +13 -5
- data/source/bzs/db/protocol/tdap/uri.h +4 -4
- data/source/bzs/db/transactd/transactd.cpp +6 -5
- data/source/bzs/env/crosscompile.cpp +17 -0
- data/source/bzs/env/crosscompile.h +4 -1
- data/source/bzs/env/mbcswchrLinux.cpp +3 -0
- data/source/bzs/example/deleteRecords.cpp +13 -0
- data/source/bzs/example/deleteRecords_c.cpp +8 -1
- data/source/bzs/example/insertRecords.cpp +14 -0
- data/source/bzs/example/insertRecords_c.cpp +8 -1
- data/source/bzs/example/ormap_c.cpp +8 -1
- data/source/bzs/example/queryData.cpp +92 -2
- data/source/bzs/example/queryData.h +3 -1
- data/source/bzs/example/readRecords.cpp +13 -0
- data/source/bzs/example/readRecords_c.cpp +8 -1
- data/source/bzs/example/updateRecords.cpp +13 -0
- data/source/bzs/example/updateRecords_c.cpp +8 -1
- data/source/bzs/example/update_with_transaction.cpp +13 -0
- data/source/bzs/example/update_with_transaction_c.cpp +8 -1
- data/source/bzs/example/useORMRecord.cpp +9 -3
- data/source/bzs/netsvc/client/iconnection.h +8 -0
- data/source/bzs/netsvc/client/tcpClient.cpp +61 -16
- data/source/bzs/netsvc/client/tcpClient.h +430 -214
- data/source/bzs/netsvc/server/serverPipe.cpp +2 -2
- data/source/bzs/test/tdclphp/transactd_Test.php +115 -19
- data/source/bzs/test/tdclphp/transactd_blob_Test.php +33 -5
- data/source/bzs/test/tdclphp/transactd_kanjischema_Test.php +21 -3
- data/source/bzs/test/tdclphp/transactd_pool_Test.php +17 -3
- data/source/bzs/test/tdclrb/transactd_blob_spec.rb +26 -8
- data/source/bzs/test/tdclrb/transactd_kanjischema_spec.rb +13 -6
- data/source/bzs/test/tdclrb/transactd_pool_spec.rb +14 -8
- data/source/bzs/test/tdclrb/transactd_spec.rb +117 -27
- data/source/bzs/test/transactdBench/scaling_bench.cpp +5 -5
- data/source/bzs/test/transactdBench/workerBase.h +2 -2
- data/source/bzs/test/trdclengn/test_trdclengn.cpp +898 -51
- data/source/global/tdclatl/Database.cpp +12 -0
- data/source/global/tdclatl/Database.h +4 -0
- data/source/global/tdclatl/FieldDef.cpp +19 -0
- data/source/global/tdclatl/FieldDef.h +4 -0
- data/source/global/tdclatl/FieldDefs.cpp +14 -16
- data/source/global/tdclatl/GroupQuery.cpp +21 -16
- data/source/global/tdclatl/GroupQuery.h +1 -1
- data/source/global/tdclatl/QueryBase.cpp +14 -0
- data/source/global/tdclatl/QueryBase.h +2 -0
- data/source/global/tdclatl/Record.cpp +41 -10
- data/source/global/tdclatl/Record.h +1 -1
- data/source/global/tdclatl/Recordset.cpp +117 -31
- data/source/global/tdclatl/Recordset.h +6 -5
- data/source/global/tdclatl/Table.cpp +24 -28
- data/source/global/tdclatl/Table.h +3 -4
- data/source/global/tdclatl/activeTable.cpp +149 -103
- data/source/global/tdclatl/activeTable.h +1 -1
- data/source/global/tdclatl/tdclatl.idl +38 -18
- data/transactd.gemspec +1 -1
- metadata +8 -4
- data/bin/common/tdclc_32_2_2.dll +0 -0
- data/bin/common/tdclc_64_2_2.dll +0 -0
@@ -42,14 +42,20 @@ namespace client
|
|
42
42
|
char connections::port[PORTNUMBUF_SIZE] = { "8610" };
|
43
43
|
bool connections::m_usePipedLocal = true;
|
44
44
|
#ifdef _WIN32
|
45
|
-
|
45
|
+
int connections::connectTimeout = 20000;
|
46
|
+
int connections::netTimeout = 180000;
|
46
47
|
#else
|
47
|
-
|
48
|
+
int connections::connectTimeout = 20;
|
49
|
+
int connections::netTimeout = 180;
|
48
50
|
#endif
|
49
51
|
|
52
|
+
#define DEFAULT_CONNECT_TIMEOUT "20"
|
53
|
+
#define DEFAULT_NET_TIMEOUT "180"
|
50
54
|
|
51
|
-
|
55
|
+
|
56
|
+
connections::connections(const char* pipeName) : m_pipeName(pipeName),m_resolver(m_ios)
|
52
57
|
{
|
58
|
+
|
53
59
|
#ifdef _WIN32
|
54
60
|
DWORD len = MAX_PATH;
|
55
61
|
char buf[MAX_PATH];
|
@@ -63,9 +69,12 @@ connections::connections(const char* pipeName) : m_pipeName(pipeName)
|
|
63
69
|
GetPrivateProfileString("transctd_client", "port", "8610", tmp, 30,
|
64
70
|
buf);
|
65
71
|
strcpy_s(port, PORTNUMBUF_SIZE, tmp);
|
66
|
-
GetPrivateProfileString("transctd_client", "
|
67
|
-
|
68
|
-
|
72
|
+
GetPrivateProfileString("transctd_client", "connectTimeout",
|
73
|
+
DEFAULT_CONNECT_TIMEOUT, tmp, 30, buf);
|
74
|
+
connectTimeout = atoi(tmp)*1000;
|
75
|
+
GetPrivateProfileString("transctd_client", "netTimeout",
|
76
|
+
DEFAULT_NET_TIMEOUT, tmp, 30, buf);
|
77
|
+
netTimeout = atoi(tmp)*1000;
|
69
78
|
}
|
70
79
|
#else // NOT _WIN32
|
71
80
|
#if (BOOST_VERSION > 104900)
|
@@ -86,10 +95,14 @@ connections::connections(const char* pipeName) : m_pipeName(pipeName)
|
|
86
95
|
p = "8610";
|
87
96
|
strcpy_s(port, PORTNUMBUF_SIZE, p.c_str());
|
88
97
|
|
89
|
-
p = pt.get<std::string>("transctd_client.
|
90
|
-
|
91
|
-
if (
|
92
|
-
|
98
|
+
p = pt.get<std::string>("transctd_client.connectTimeout");
|
99
|
+
connectTimeout = atol(p.c_str());
|
100
|
+
if (connectTimeout == 0)
|
101
|
+
connectTimeout = atoi(DEFAULT_CONNECT_TIMEOUT);
|
102
|
+
p = pt.get<std::string>("transctd_client.netTimeout");
|
103
|
+
netTimeout = atol(p.c_str());
|
104
|
+
if (netTimeout == 0)
|
105
|
+
netTimeout = atoi(DEFAULT_NET_TIMEOUT);
|
93
106
|
}
|
94
107
|
catch (...)
|
95
108
|
{
|
@@ -126,15 +139,19 @@ connection* connections::getConnection(asio::ip::tcp::endpoint& ep)
|
|
126
139
|
asio::ip::tcp::endpoint connections::endpoint(const std::string& host,
|
127
140
|
boost::system::error_code& ec)
|
128
141
|
{
|
129
|
-
tcp::resolver resolver(m_ios);
|
130
142
|
tcp::resolver::query query(host, port);
|
131
143
|
|
132
|
-
tcp::resolver::iterator dest =
|
144
|
+
tcp::resolver::iterator dest = m_resolver.resolve(query, ec);
|
133
145
|
tcp::endpoint endpoint;
|
134
146
|
if (!ec)
|
135
147
|
{
|
136
148
|
while (dest != tcp::resolver::iterator())
|
137
149
|
endpoint = *dest++;
|
150
|
+
}else if (host == "localhost")
|
151
|
+
{
|
152
|
+
endpoint.address(ip::address::from_string("127.0.0.1"));
|
153
|
+
endpoint.port((unsigned short)atoi(port));
|
154
|
+
ec.clear();
|
138
155
|
}
|
139
156
|
return endpoint;
|
140
157
|
}
|
@@ -209,7 +226,11 @@ inline connection* connections::createConnection(asio::ip::tcp::endpoint& ep,
|
|
209
226
|
return new pipeConnection(ep, m_pipeName);
|
210
227
|
else
|
211
228
|
#endif
|
212
|
-
|
229
|
+
#ifdef __APPLE__
|
230
|
+
return new asio_tcpConnection(ep);
|
231
|
+
#else
|
232
|
+
return new native_tcpConnection(ep);
|
233
|
+
#endif
|
213
234
|
}
|
214
235
|
|
215
236
|
inline connection* connections::doConnect(connection* c)
|
@@ -219,12 +240,22 @@ inline connection* connections::doConnect(connection* c)
|
|
219
240
|
c->connect();
|
220
241
|
return c;
|
221
242
|
}
|
222
|
-
catch (bzs::netsvc::client::exception&
|
243
|
+
catch (bzs::netsvc::client::exception& e)
|
223
244
|
{
|
224
245
|
delete c;
|
225
|
-
throw;
|
246
|
+
throw e;
|
226
247
|
}
|
227
|
-
catch (boost::system::system_error&
|
248
|
+
catch (boost::system::system_error& e)
|
249
|
+
{
|
250
|
+
delete c;
|
251
|
+
throw e;
|
252
|
+
}
|
253
|
+
catch (std::exception& e)
|
254
|
+
{
|
255
|
+
delete c;
|
256
|
+
throw e;
|
257
|
+
}
|
258
|
+
catch (...)
|
228
259
|
{
|
229
260
|
delete c;
|
230
261
|
throw;
|
@@ -289,6 +320,20 @@ connection* connections::connect(const std::string& host, handshake f, void* dat
|
|
289
320
|
return c;
|
290
321
|
}
|
291
322
|
|
323
|
+
bool connections::reconnect(connection* c, const std::string& host,
|
324
|
+
handshake f, void* data)
|
325
|
+
{
|
326
|
+
boost::system::error_code ec;
|
327
|
+
mutex::scoped_lock lck(m_mutex);
|
328
|
+
asio::ip::tcp::endpoint ep = endpoint(host, ec);
|
329
|
+
if (ec)
|
330
|
+
return false;
|
331
|
+
c->reconnect(ep);
|
332
|
+
if (!c || !doHandShake(c, f, data))
|
333
|
+
return false;
|
334
|
+
return true;
|
335
|
+
}
|
336
|
+
|
292
337
|
int connections::connectionCount()
|
293
338
|
{
|
294
339
|
return (int)m_conns.size();
|