14
14
15
15
package com .risingwave .sourcenode ;
16
16
17
- import com .risingwave .connector .api .source .ConnectorConfig ;
18
17
import com .risingwave .connector .api .source .SourceTypeE ;
19
18
import com .risingwave .proto .ConnectorServiceProto ;
20
19
import com .risingwave .proto .Data .DataType ;
20
+ import com .risingwave .sourcenode .common .DbzConnectorConfig ;
21
21
import com .risingwave .sourcenode .core .SourceHandlerFactory ;
22
22
import io .grpc .Status ;
23
23
import io .grpc .StatusException ;
@@ -46,19 +46,19 @@ public void handle(ConnectorServiceProto.GetEventStreamRequest request) {
46
46
break ;
47
47
case START :
48
48
var startRequest = request .getStart ();
49
- var handler =
50
- SourceHandlerFactory .createSourceHandler (
51
- SourceTypeE .valueOf (startRequest .getSourceType ()),
52
- startRequest .getSourceId (),
53
- startRequest .getStartOffset (),
54
- new ConnectorConfig (startRequest .getPropertiesMap ()));
55
- if (handler == null ) {
56
- LOG .error ("failed to create source handler" );
57
- responseObserver .onCompleted ();
58
- } else {
59
- handler .handle (
49
+ try {
50
+ var handler =
51
+ SourceHandlerFactory .createSourceHandler (
52
+ SourceTypeE .valueOf (startRequest .getSourceType ()),
53
+ startRequest .getSourceId (),
54
+ startRequest .getStartOffset (),
55
+ startRequest .getPropertiesMap ());
56
+ handler .startSource (
60
57
(ServerCallStreamObserver <ConnectorServiceProto .GetEventStreamResponse >)
61
58
responseObserver );
59
+ } catch (Throwable t ) {
60
+ LOG .error ("failed to start source" , t );
61
+ responseObserver .onError (t );
62
62
}
63
63
break ;
64
64
case REQUEST_NOT_SET :
@@ -75,11 +75,11 @@ private void validateDbProperties(
75
75
String jdbcUrl =
76
76
toJdbcPrefix (validate .getSourceType ())
77
77
+ "://"
78
- + props .get (ConnectorConfig .HOST )
78
+ + props .get (DbzConnectorConfig .HOST )
79
79
+ ":"
80
- + props .get (ConnectorConfig .PORT )
80
+ + props .get (DbzConnectorConfig .PORT )
81
81
+ "/"
82
- + props .get (ConnectorConfig .DB_NAME );
82
+ + props .get (DbzConnectorConfig .DB_NAME );
83
83
LOG .debug ("validate jdbc url: {}" , jdbcUrl );
84
84
85
85
var sqlStmts = new Properties ();
@@ -93,8 +93,8 @@ private void validateDbProperties(
93
93
try (var conn =
94
94
DriverManager .getConnection (
95
95
jdbcUrl ,
96
- props .get (ConnectorConfig .USER ),
97
- props .get (ConnectorConfig .PASSWORD ))) {
96
+ props .get (DbzConnectorConfig .USER ),
97
+ props .get (DbzConnectorConfig .PASSWORD ))) {
98
98
// usernamed and password are correct
99
99
var dbMeta = conn .getMetaData ();
100
100
@@ -138,8 +138,8 @@ private void validateDbProperties(
138
138
}
139
139
// check whether table exist
140
140
try (var stmt = conn .prepareStatement (sqlStmts .getProperty ("mysql.table" ))) {
141
- stmt .setString (1 , props .get (ConnectorConfig .DB_NAME ));
142
- stmt .setString (2 , props .get (ConnectorConfig .TABLE_NAME ));
141
+ stmt .setString (1 , props .get (DbzConnectorConfig .DB_NAME ));
142
+ stmt .setString (2 , props .get (DbzConnectorConfig .TABLE_NAME ));
143
143
var res = stmt .executeQuery ();
144
144
while (res .next ()) {
145
145
var ret = res .getInt (1 );
@@ -152,8 +152,8 @@ private void validateDbProperties(
152
152
try (var stmt =
153
153
conn .prepareStatement (sqlStmts .getProperty ("mysql.table_schema" ))) {
154
154
var sourceSchema = validate .getTableSchema ();
155
- stmt .setString (1 , props .get (ConnectorConfig .DB_NAME ));
156
- stmt .setString (2 , props .get (ConnectorConfig .TABLE_NAME ));
155
+ stmt .setString (1 , props .get (DbzConnectorConfig .DB_NAME ));
156
+ stmt .setString (2 , props .get (DbzConnectorConfig .TABLE_NAME ));
157
157
var res = stmt .executeQuery ();
158
158
var pkFields = new HashSet <String >();
159
159
int index = 0 ;
@@ -203,8 +203,8 @@ private void validateDbProperties(
203
203
}
204
204
// check schema name and table name
205
205
try (var stmt = conn .prepareStatement (sqlStmts .getProperty ("postgres.table" ))) {
206
- stmt .setString (1 , props .get (ConnectorConfig .PG_SCHEMA_NAME ));
207
- stmt .setString (2 , props .get (ConnectorConfig .TABLE_NAME ));
206
+ stmt .setString (1 , props .get (DbzConnectorConfig .PG_SCHEMA_NAME ));
207
+ stmt .setString (2 , props .get (DbzConnectorConfig .TABLE_NAME ));
208
208
var res = stmt .executeQuery ();
209
209
while (res .next ()) {
210
210
var ret = res .getString (1 );
@@ -219,9 +219,9 @@ private void validateDbProperties(
219
219
try (var stmt = conn .prepareStatement (sqlStmts .getProperty ("postgres.pk" ))) {
220
220
stmt .setString (
221
221
1 ,
222
- props .get (ConnectorConfig .PG_SCHEMA_NAME )
222
+ props .get (DbzConnectorConfig .PG_SCHEMA_NAME )
223
223
+ "."
224
- + props .get (ConnectorConfig .TABLE_NAME ));
224
+ + props .get (DbzConnectorConfig .TABLE_NAME ));
225
225
226
226
var res = stmt .executeQuery ();
227
227
var pkFields = new HashSet <String >();
@@ -237,8 +237,8 @@ private void validateDbProperties(
237
237
// check whether source schema match table schema on upstream
238
238
try (var stmt =
239
239
conn .prepareStatement (sqlStmts .getProperty ("postgres.table_schema" ))) {
240
- stmt .setString (1 , props .get (ConnectorConfig .PG_SCHEMA_NAME ));
241
- stmt .setString (2 , props .get (ConnectorConfig .TABLE_NAME ));
240
+ stmt .setString (1 , props .get (DbzConnectorConfig .PG_SCHEMA_NAME ));
241
+ stmt .setString (2 , props .get (DbzConnectorConfig .TABLE_NAME ));
242
242
var res = stmt .executeQuery ();
243
243
var sourceSchema = validate .getTableSchema ();
244
244
int index = 0 ;
0 commit comments