transactd 2.2.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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();
|