2018-08-22
Pełny komunikat błedu:
Winsock Error 10060: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
Właściwie objaw Service Brokera był taki, że „nie działa”. W takim przypadku, jeśli tylko nie widać innych błędów (jak np. przepełniony log bazy danych z brokerem), należy będąc w tej bazie danych uruchomić polecenie:
SELECT * FROM sys.transmission_queue
Ostatnia kolumna z opisem statusu zawierała w/w komunikat. Komunikacja wysyłana przez service broker po prostu czeka, aż komunikaty uda się przesłać. Potencjalne przyczyny to:
- wyłączony docelowy host
- firewall między maszynami
- firewall lokalnie włączony na zdalnej maszynie
- itp – generalnie zawsze błąd na poziomie łączności na porcie
W tym przypadku został włączony firewall… Po zdefiniowaniu reguły na firewall komunikaty zaczęły po prostu spływać same 🙂
2018-08-20
Pełny komunikat błędu:
Dialog security is unavailable for this conversation because there is no security certificate bound to the database principal (Id: 5). Either create a certificate for the principal, or specify ENCRYPTION = OFF when beginning the conversation.
Kiedy Service Broker nawiązuje połączenie to wykonuje to za pomocą kilku obiektów bazy danych takich jak sama usługa Service Broker, kolejka, konwersacja itp. Te obiekty mają swojego właściciela – jak wszystko w bazie danych więc jest to całkiem normalne. Jednak w Service Broker pod spodem działają certyfikaty – te służą do uwierzytelnienia. Niestety, jeśli coś majstrowałeś przy certyfikatach to takie powiązanie mogło się stracić. A jest ono dosyć proste
- obiekt należy do użytkownika
- użytkownik ma być zbindowany do certyfikatu
Sprawa będzie prosta.
Użytkownik powinien był być utworzony jakoś tak:
CREATE USER … WITHOUT LOGIN;
a certyfikat jakoś tak:
CREATE CERTIFICATE … AUTHORIZATION [tutaj nazwa użytkownika] FROM FILE=’…’
U mnie zadziałało od strzału!
Pomocny link:
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/8591016f-a1ca-43be-ab33-fddbcdec06b0/error-message-dialog-security?forum=sqlservicebroker
2018-08-20
Pełna treść komunikatu z błędem to:
Connection handshake failed. The certificate used by the peer is invalid due to the following reason: Certificate not found. State 89
Istotne przy konfiguracji usług związanych z Service Brokerem opartym o certyfikaty jest to, że często nie liczy się nazwa certyfikatu, ale jego thumbprint (odcisk palca). Kiedy dwa serwery nawiązują połączenie jeden z nich mówi:
- chcę się połączyć z Tobą korzystając z certyfikatu XYZ
- a drugi serwer odpowiada – fajnie mam certyfikat XYZ i mam do niego klucz prywatny, zacznijmy od autoryzacji….
W moim przypadku na tych dwóch rozmawiających serwerach były zainstalowane certyfikaty o tej samej nazwie, ale niestety były to kompletnie inne certyfikaty! Ich odciski palców się nie zgadzały!
Aby sprawdzić czy certyfikaty są takie same wykonałem na obu instancjach:
select * from sys.certificates
a potem porównałem pole thumbprint. Ponieważ się nie zgadzały wyeksportowałem certyfikat z jednego serwera (BACKUP CERTIFICATE – tylko klucz publiczny) i odtworzyłem go na drugim (CREATE CERTIFICATE…. FROM FILE=’..’). Ponieważ do certyfikatu był przywiązany jeszcze login, to i ten login musiałem usunąć i odtworzyć.
Certyfikat występował w moim przypadku w bazie master (poziom instancji) i w bazie skonfigurowanej pod service broker. Wymieniłem go w obu miejscach
Pomocny link:
https://social.msdn.microsoft.com/Forums/Lync/en-US/7b4d9350-cf72-4d25-83d5-db39f1bb1c01/connection-handshake-failed-the-certificate-used-by-the-peer-is-invalid-due-to-the-following?forum=sqldatabasemirroring
2018-07-18
Pewna aplikacja wymaga na serwerze podstawowego dostępu do serwera i do KAŻDEJ bazy danych, która znajduje się na serwerze.
Jakimś pomysłem mogłoby być stworzenie loginu z podstawowymi uprawnieniami na bazie (może nawet bez żadnych dodatkowych uprawnień – po prostu rola public) oraz użytkownika zmapowanego do tego loginu. Ten użytkownik też może być przypisany do podstawowej roli w bazie. Co jednak za tym idzie nowe bazy tworzone lub odtwarzane na tym serwerze musiałby mieć dodawanego tego użytkownika, a więc może jakiś job?
Jest jednak prostsze rozwiązanie. Loginowi wystarczy nadać uprawnienie CONNECT ANY DATABASE. Jeden GRANT na poziomie instancji i sprawa załatwiona!
2018-07-11
Uczysz się SQL, chcesz zobaczyć jego nowe lub zaawansowane funkcje, a może to wcale nie SQL jest w zakresie twoich zainteresowań, ale jakaś inna technologia od Microsoft?
Teraz możesz skorzystać z darmowych laboratoriów https://handsonlabs-r.azurewebsites.net/
Strona pozwoli wyszukać interesujące Cie laboratorium, a po zalogowaniu zobaczysz w przeglądarce maszynę wirtualną wraz z instrukcjami po prawej. Do dzieła!
2018-07-08
Tym razem tylko porcja linków, pod którymi można znaleźć przdatne dane do testów i nauki Pythona i Pandas:
- Fantastyczny zbiór danych wraz z już opracowanym, opublikowanym i skąd inąd interesującym data story: https://github.com/fivethirtyeight/data
- Zadania do samodzielnego rozwiązania z zakresu Python/Pandas: https://www.w3resource.com/python-exercises/pandas/index.php
- Prawie, że kurs „hands on lab” z zakresu Pandas, z założenia skupia się na samej praktyce: https://github.com/guipsamora
- Zbiory danych publikowane przez agencje rządowe US. Większe, mniejsze, mniej lub bardziej aktualne, ale jest z czego wybierać: https://www.data.gov/
- Sporo danych o zdrowiu, chorobach obywateli US. Trochę trudno wyszukać źródłowe dane, ale jak już je znajdziesz to jest z czego wybierać: https://chronicdata.cdc.gov/
- np. tutaj – informacje o palaczach tytoniu, próbach wyjścia z nałogu, dla różnych krajów, w tym dla Polski: https://chronicdata.cdc.gov/Global-Survey-Data/Global-Tobacco-Surveillance-System-GTSS-Global-Adu/4xf6-nrwk
- Zbiory danych do zabawy z R: https://vincentarelbundock.github.io/Rdatasets/datasets.html
- 100 Pandas puzzless – pomysłowy zbór zadań z pandas: https://github.com/ajcr/100-pandas-puzzles
- Jak pracować z Pandas kiedy zna się SQL: https://codeburst.io/how-to-rewrite-your-sql-queries-in-pandas-and-more-149d341fc53e
- Dużo informacji o zdarzeniach lotniczych: https://aviation-safety.net
- Dane do analizy obrazu: https://www.analyticsvidhya.com/blog/2018/03/comprehensive-collection-deep-learning-datasets/
- Całkiem ładne podsumowanie informacji o Pandas: https://www.datacamp.com/community/tutorials/pandas-idiomatic
- Ranking uniwersytetów: https://www.kaggle.com/mylesoneill/world-university-rankings
- Inne dataset z Kaggle: https://www.kaggle.com/datasets
- Data science datasets: https://www.datascienceweekly.org/data-science-resources/data-science-datasets
- Elite Data Science: https://elitedatascience.com/datasets
- Awesome data: https://github.com/awesomedata/awesome-public-datasets#software
- Dalsze propozycje: https://www.dataquest.io/blog/free-datasets-for-projects/
2018-06-25
Laptop Lenovo IdeaPad 710s:
Dostęp do Internetu uzyskuje zazwyczaj bez problemu, ale na jednej sieci Wifi:
- łączy się
- dostaje adres IP
- nie ma kontaktu ani z siecią lokalną ani z Internetem
Pomagał restart routera, ale po paru godzinach, problem pojawiał sie znowu. Co pomogło?
- Panel sterowania >> System
- Manager urządzeń
- Poszukać kart sieciowych, u mnie to

- W ustawieniach karty „zaawansowane” oba ustawienia dotyczące 802.11 n zmieniłem na 20MHz Only

Restart karty zrobił się sam i działa, że mucha nie siada!