W celu dodania do postów publikowanych na Blogger wykopywarki należy w szablonie (po wybraniu opcji Rozszerz szablony widgetów dodać kod:
W celu modyfikacji wyglądu zachęcam do zapoznania się z przykładami na stronie http://wykop.pl/narzedzia.
sobota, 18 sierpnia 2007
środa, 15 sierpnia 2007
Sybase CONNECTION_AUTHENTICATION
W przypadku korzystania z Adaptive Server Anywhere w wersji OEM konieczna jest autoryzacja każdego połączenia w bazie. Jeżeli połączenie nie zostanie zautoryzowane baza pozwoli tylko na dostęp do odczytu (read-only). Próba dokonania operacji zapisu na takiej bazie powoduje wystąpienie błędu: ASA Error- 98: Authentication violation.
W celu dokonania autoryzacji połączenia należy skorzystać z interfejsu ConnectionCustomizer dostarczanego przez zarządcę połączeniami C3P0.
W pierwszej kolejności należy stworzyć klasę, dla potrzeb przykładu C3P0ConnectionCustomizer, która zaimplementuje wspomniany wcześniej interfejs. Interfejs dostarcza następujące metody:
Klasa C3P0ConnectionCustomizer:
Drugim i ostatnim krokiem jest poinformowanie C3P0 o konieczności korzystania z klasy C3P0ConnectionCustomizer przy zarządzaniu połączeniami. W tym celu przypisujemy właściwości c3p0.connectionCustomizerClassName nazwę klasy wykonującej to zadanie. Może to zostać dokonane np. w pliku c3p0.properties (przykład wpisu poniżej)
C3P0.properties
Więcej o interfejsie ConnectionCustomizer
W celu dokonania autoryzacji połączenia należy skorzystać z interfejsu ConnectionCustomizer dostarczanego przez zarządcę połączeniami C3P0.
W pierwszej kolejności należy stworzyć klasę, dla potrzeb przykładu C3P0ConnectionCustomizer, która zaimplementuje wspomniany wcześniej interfejs. Interfejs dostarcza następujące metody:
- onAcquire
- onCheckIn
- onCheckOut
- onDestroy
Klasa C3P0ConnectionCustomizer:
public class C3P0ConnectionCustomizer implements ConnectionCustomizer {
public void onAcquire(Connection arg0, String arg1) throws Exception {
Statement Stmt1 = arg0.createStatement();
Stmt1.executeUpdate("SET TEMPORARY OPTION CONNECTION_AUTHENTICATION='Company=ComapnyName;Application=ApplicationName;Signature=0...4'");
}
public void onCheckIn(Connection arg0, String arg1) throws Exception {
}
public void onCheckOut(Connection arg0, String arg1) throws Exception {
}
public void onDestroy(Connection arg0, String arg1) throws Exception {
}
}
Drugim i ostatnim krokiem jest poinformowanie C3P0 o konieczności korzystania z klasy C3P0ConnectionCustomizer przy zarządzaniu połączeniami. W tym celu przypisujemy właściwości c3p0.connectionCustomizerClassName nazwę klasy wykonującej to zadanie. Może to zostać dokonane np. w pliku c3p0.properties (przykład wpisu poniżej)
C3P0.properties
c3p0.connectionCustomizerClassName=C3P0ConnectionCustomizer
Jeżeli kod autoryzujący połączenie będzie nieprawidłowy to przy próbie nawiązania połączenia zostanie zwrócony błąd ASA Error- 218: Authentication violation.Więcej o interfejsie ConnectionCustomizer
Subskrybuj:
Posty (Atom)