|
|
|
JayBird 2.2.3: как им вызвать аналог isc_database_info() ?
|
|||
|---|---|---|---|
|
#18+
hi all Понадобилось тут утилитку одну сбацать, чтобы 1 раз в NN секунд вызывала isc_database_info() и логировала значения кумулятивных reads/writes/fetches/marks. Читаю ководство по JayBird'у 2.2.1 (более свежего нету) и не въеду что-то: где там вызов чего-то аналогичного ? Расписаны (в разделе 'Working with services') бекапы с ресторами, шатдаун, управление усерам и гстат. И - всё. И как тогда достукиваться до самой сокровенной инфы ? ЗЫ. Попробовал коннект с вызовом его getDatabaseStatistics() - это просто выброс gstat -r, не более. А другого по теме статистики что-то не вижу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2013, 23:46:56 |
|
||
|
JayBird 2.2.3: как им вызвать аналог isc_database_info() ?
|
|||
|---|---|---|---|
|
#18+
Таблоид, я такое делал 14 лет назад http://www.ibase.ru/d_ibapi.htm см IB Monitor но насколько я помню, эта информация аккумулируется только для суперсервера. ТаблоидЧитаю ководство по JayBird'у 2.2.1 именно JayBird надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2013, 01:10:13 |
|
||
|
JayBird 2.2.3: как им вызвать аналог isc_database_info() ?
|
|||
|---|---|---|---|
|
#18+
kdvТаблоидЧитаю ководство по JayBird'у 2.2.1 именно JayBird надо?мне всё равно, лишь бы через какой-нибудь jdbc туда достукаться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2013, 11:50:02 |
|
||
|
JayBird 2.2.3: как им вызвать аналог isc_database_info() ?
|
|||
|---|---|---|---|
|
#18+
kdvсм IB MonitorПосмотрел. Он не рефрешит статистику и не пишет лог. Что есть жаль. ЗЫ. У меня именно SuperServer, мне как раз и надо "аккумуляторные" значения логировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2013, 11:58:03 |
|
||
|
JayBird 2.2.3: как им вызвать аналог isc_database_info() ?
|
|||
|---|---|---|---|
|
#18+
Таблоид, насколько я помню - рефрешит. но в лог не пишет, мне это не было нужно. на Дельфи 7-2007 скомпилировать - 5 сек. на JayBird - ищи любые примеры использования isc_database_info ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2013, 17:25:25 |
|
||
|
JayBird 2.2.3: как им вызвать аналог isc_database_info() ?
|
|||
|---|---|---|---|
|
#18+
kdv, нарыл я это: http://www.firebirdsql.org/file/documentation/drivers_documentation/java/2.2.3/docs/org/firebirdsql/jca/FBConnectionRequestInfo.html да только как объект его создать - не врубаюсь. там аргументом должен быть объект, реализующий интерфейс DatabaseParameterBuffer, а судя по этой же доке, елинственным классом, который его реализует, является сам FBConnectionRequestInfo. Замкнутый круг какой-то. У кого-нить есть пример юзания FBConnectionRequestInfo, для старта ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2013, 19:02:06 |
|
||
|
JayBird 2.2.3: как им вызвать аналог isc_database_info() ?
|
|||
|---|---|---|---|
|
#18+
Насколько я понял, FBConnectionRequestInfo это не то, что тебе нужно. Но попробуй получать dataSource.getConnectionRequestInfo(); Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.12.2013, 21:54:17 |
|
||
|
JayBird 2.2.3: как им вызвать аналог isc_database_info() ?
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамНасколько я понял, FBConnectionRequestInfo это не то, что тебе нужно. Но попробуй получать dataSource.getConnectionRequestInfo(); попробовал, получаю не то, что нужно. Рытьё в доке привело к следующему. 1. В пакете org.firebirdsql.gds имеется междуморд с именем = 'GDS' (да, большими буквами). Насколько смог понять, для создания объекта, реализующего этот интерфейс, можно делать так: Код: sql 1. У интерфейса этого есть метод iscDatabaseInfo: сигнатура iscDatabaseInfo Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. При этом первый аргумент относится к IscDbHandle - это тоже интерфейс, вот он: http://www.firebirdsql.org/file/documentation/drivers_documentation/java/2.2.2/docs/org/firebirdsql/gds/IscDbHandle.html public interface IscDbHandle The interface isc_db_handle represents a socket connection to the database server.Однако, в общем списке-иерархии классов и междумордов JayBird'a я В УПОР НЕ ВИЖУ, какой класс реализаует IscDbHandle 2. В результате чтения второго примера из поставки jayBird'a, родилось что-то несуразное, делающее коннект к базе и даже что-то из-под неё достающее. Но застрял я именно на том, как подсунуть IscDbHandle - см в спойлере выделенный текст: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. Пните в нужную сторону: чё там подставить надо ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 01:28:04 |
|
||
|
JayBird 2.2.3: как им вызвать аналог isc_database_info() ?
|
|||
|---|---|---|---|
|
#18+
Я в упор вижу вот такое: http://www.firebirdsql.org/file/documentation/drivers_documentation/java/2.2.3/docs/org/firebirdsql/gds/GDS.html createIscDbHandle iscAttachDatabase iscDatabaseInfo iscDetachDatabase ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 01:38:20 |
|
||
|
JayBird 2.2.3: как им вызвать аналог isc_database_info() ?
|
|||
|---|---|---|---|
|
#18+
hvladЯ в упор вижу вот такоеЯ уже там был. Не взлетает ни хрена! Вот: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 02:14:20 |
|
||
|
JayBird 2.2.3: как им вызвать аналог isc_database_info() ?
|
|||
|---|---|---|---|
|
#18+
"Уже лучше, но всё еще очень плохо" ((С) арм.) Запустил ФБ как SuperServer (в режиме приложения: fbserver -a), открыл isql, ввёл там "долгий тяжкий инсерт". Запускаю далее вот это, несколько раз: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. - а он выдаёт мне одни и те же значения счетчиков: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Нутром чую, что добыча где-то близко. Дайте заключительного пинка в сторону истины, плз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 09:47:34 |
|
||
|
JayBird 2.2.3: как им вызвать аналог isc_database_info() ?
|
|||
|---|---|---|---|
|
#18+
ТаблоидЗапустил ФБ как SuperServer (в режиме приложения: fbserver -a) ты классик запустил, SuperServer это fbserver -a -m ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 10:01:28 |
|
||
|
JayBird 2.2.3: как им вызвать аналог isc_database_info() ?
|
|||
|---|---|---|---|
|
#18+
Таблоид Код: sql 1. 2. 3. 4. 5. Кто тебя учил так читать содержимое буфера ? Сам знаю, что никто Но если уж ты до констант докопался, то мог бы и прочитать в доке, как данные получить. Чти API Guide, p.52: Requesting buffer items and result buffer values ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 11:30:36 |
|
||
|
JayBird 2.2.3: как им вызвать аналог isc_database_info() ?
|
|||
|---|---|---|---|
|
#18+
dimitrТаблоидЗапустил ФБ как SuperServer (в режиме приложения: fbserver -a) ты классик запустил, SuperServer это fbserver -a -mЕсли fbserver, то таки это SS 2.5 и ключ -a А вот если 3-ка, то firebird и ключи -a -m :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 11:31:47 |
|
||
|
JayBird 2.2.3: как им вызвать аналог isc_database_info() ?
|
|||
|---|---|---|---|
|
#18+
ТаблоидЯ уже там был. Не взлетает ни хрена!Конечно ни хрена, аттачиться-то надо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 11:32:20 |
|
||
|
JayBird 2.2.3: как им вызвать аналог isc_database_info() ?
|
|||
|---|---|---|---|
|
#18+
hvlad, упс :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 11:38:10 |
|
||
|
JayBird 2.2.3: как им вызвать аналог isc_database_info() ?
|
|||
|---|---|---|---|
|
#18+
hvladКто тебя учил так читать содержимое буфера ? Сам знаю, что никто Да, это я сам так научился. Ночером уже :-) hvladНо если уж ты до констант докопался, то мог бы и прочитать в доке, как данные получить. Чти API Guide, p.52: Requesting buffer items and result buffer valuesВидел этот пункт, но вчитываться было в лом. Подумкал, что с наскоку получится, по принципу 'by example' (там ниже пример есть). В общем, спс! Получилось. Работающий пример кода вытащу сюда попозжее, тут подшлифовать надо его. ВОПРОС, кстати! Какой размер буфера указывать-то ? Я тут поизгаляться слегка решил и указал ноль (dbstat=gdso.iscDatabaseInfo(dh, items, 0);) и... сервак положил: Код: plaintext 1. Сборка, правда, еще от 23.07.2013: WI-V2.5.3.26682 Firebird 2.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 16:46:37 |
|
||
|
JayBird 2.2.3: как им вызвать аналог isc_database_info() ?
|
|||
|---|---|---|---|
|
#18+
ТаблоидКакой размер буфера указывать-то ? если ты берешь только ту информацию, про которую спрашиваешь, то можешь взять с избытком в 1.5-2 раза. При получении database_info если информация в заданный буфер не влазит, то возвращается ошибка, и нужно переаллокировать буфер большего размера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 17:04:58 |
|
||
|
JayBird 2.2.3: как им вызвать аналог isc_database_info() ?
|
|||
|---|---|---|---|
|
#18+
kdvесли информация в заданный буфер не влазит, то возвращается ошибка, и нужно переаллокировать буфер большего размера.ну, вот я ему буфер нулевого размера выслал, он и скрючился. Происходит это, КМК, только когда кроме моего jaybird-коннекта к базе (или вообще к этому хосту ?) больше ничего не приаттачено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 17:13:04 |
|
||
|
JayBird 2.2.3: как им вызвать аналог isc_database_info() ?
|
|||
|---|---|---|---|
|
#18+
Таблоид, буфер нулевого размера - это совсем из ряда вон :-) Поскольку JayBird сам шлет данные в ФБ, без "клиента", то либо он виноват, либо в ФБ нет "защиты" от дурацких параметров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 17:24:16 |
|
||
|
JayBird 2.2.3: как им вызвать аналог isc_database_info() ?
|
|||
|---|---|---|---|
|
#18+
ТаблоидКакой размер буфера указывать-то ?Ну ты доку прочитал ? 1+2+4 сложить можешь ? А 1+2+8 ? А на N умножить ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 17:42:37 |
|
||
|
JayBird 2.2.3: как им вызвать аналог isc_database_info() ?
|
|||
|---|---|---|---|
|
#18+
hvladТаблоидКакой размер буфера указывать-то ?Ну ты доку прочитал ? 1+2+4 сложить можешь ? А 1+2+8 ? А на N умножить ?Читал, только удивился зело: неудобно же! подсчитывать число параметров, думать про их размер и складывать это всё, чтобы в память влезло... %-) Трудно им было ArrayList(Byte) сбацать, что ле... Ну да ладно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 17:54:51 |
|
||
|
JayBird 2.2.3: как им вызвать аналог isc_database_info() ?
|
|||
|---|---|---|---|
|
#18+
Так. В общем, коряво, но влзетело: JayBird: isc_database_info() usage sample Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. В нём жестко прошита база, порт, усер+пароль и интервал опроса (5 сек). Запустил я его с логированием: Код: plaintext И вижу, товарисчи, форменный бред. Как на СуперСервере для базы, в которую сейчас 200 isql-молотилок лупят инсерты, могут быть вот такие напопительные счётчики (полный лог - в аттаче): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. PS. Изменённые параметры конфига: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 18:07:30 |
|
||
|
JayBird 2.2.3: как им вызвать аналог isc_database_info() ?
|
|||
|---|---|---|---|
|
#18+
гы... приятная штука, java эта: скопировал .jar + сырец на линух, заменил разделитель ";" на ":" - и вперёд, с песней. Никаких танцев с разрядностью, совместимостью и прочей хренотой :-) Вот только счетчики всё равно бредят %-/ Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2013, 18:32:24 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38493023&tid=1564071]: |
0ms |
get settings: |
8ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
231ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 226ms |
| total: | 569ms |

| 0 / 0 |
