|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Привет всем. Помогите пожалуйста. Говорят что в DB2 можно создать таблицу куда будут засовыватся Java.class файлы, такое возможно? Если да, то возникает следующий вопрос: Как можно вне DB2 из Жава проги вызвать эти откомпилированные класс файлы из таблицы и запустить через эту прогу их? Спазибо заранее. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2004, 11:28 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Такое возможно в любой BLOB засунуть в любой базе Создать свой ClassLoader загрузить массив байт - представить их как класс и запустить на выполнение. For ex (classloader): http://www.panix.com/~mito/articles/articles/classloader/j-classloader-ltr.pdf ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2004, 14:13 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Ясно, но остается вопрос, а разве можно допустим читать с Жава class файл и залить в таблицу? Ведь class файл это не текстовый файл. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2004, 06:22 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Какая разница между текстовым файлом и жаба классом? или рисунком? или видео? В BLOB можно залить любые данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.09.2004, 08:15 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Ясно, но почему то моя прога не заливает его, вот пример: ................. .............. Чтение файла и присвайвание к переменной: FileReader FR = new FileReader("example.class"); BufferedReader BR = new BufferedReader(FR); while ( (s = BR.readLine()) != null) { gr += "\n" + s; } или надо байтовое чтение из файла? .................. ................ Заливка таблицы: Connection conn = DB2Connector.getConnect(); Statement stmt = conn.createStatement(); stmt.executeUpdate("Insert Into DBName.table1 Values(' " + gr + " ' )"); // Здесь в таблице table1 тип поле BLOB ........... Так он не работает, пишет ошибку: com.ibm.db2.jcc.b.SQLException: bug check Что делать? А после того как я залил допустим, и вытащил из таблицы обратно значение, потом как поступить? сохранить в файл и расширение сделать class? Вот этот момент меня настораживает ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2004, 09:12 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
keyword: Statement::setBlob(int i, Blob x); 2 all. Помогите разобраться с этим: http://www.sql.ru/forum/actualthread.aspx?tid=122623 ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2004, 10:12 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Statement::setBlob(int i, Blob x); Что бы интересно это означало? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2004, 12:59 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Воабще у меня задача стоит такая: Надо написать прогу которая работала бы под OS390. Прога должна вызывать из таблицы class файл и запускал его. В свою очередь этот файл что то выполняет. 1. Залить в DB2. Каким методом? 2. Вызывать class файл и запускать его. Если чесно я никогда не вызывал из таблицы class файл и не запускал, по этому для меня это новинка. Я бы попросил кого нибудь знающего, хотя бы коротко написать эти два шага. Как надо реализовывать такую задачу и как запускать. Хотя бы коротко. Помогите!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2004, 13:03 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
VortexCorbaStatement::setBlob(int i, Blob x); Что бы интересно это означало? Извиняюсь не Statement конечно а PreparedStatement: Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2004, 13:49 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Вот тебе пример - сохраняет массив байт. Blob - интерфейс который, делает то же самое. Но для него нужно написать реализацию или пользоваться существующей. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
К примеру: [src] byte[] data = new byte[(int) (new File(key).length())]; new FileInputStream(key).read(data); [src] Читать из базы - ResultSet.getBytes - дальше ClassLoader - смотри пример выше по ссылке ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2004, 14:21 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Спаибо всем ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2004, 08:40 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Еще есть примеры у кого? Рад буду посмотреть ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2004, 13:30 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Есть еще вопрос: Какой вид ниже перечисленных программ лучшее: 1. Есть прога которая из таблицы вытаскивает нужный класс файл и запускает его. Все это под OS390 работает. 2. Есть прога которая запускает класс файл из папки. т.е файл лежит в папке. Есть ли разница? Эффективность? Еще что нибудь? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.09.2004, 14:35 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Описал бы задачу :) А то сложно сказать - пункт 1 требует установки дб2 а это стоит денег. Во втором вроде по описанию не требуется - можно их и сэкономить :) Если смотреть с точки зрения производительности - то чтобы зачитать класс из БД требуется больше операций чем в случае с файловой системой. Опять же если их (классов) много - то время поиска по файловой системе в каталоге (предположительно) линейное - а в базе (может быть) логарифическое от числа файлов. Т.е. при определенном N... Если серьезно - это довольно специфический подход - написание собственного класслоадера - есть конечно задачи где это требуется и для этого есть причины - но это все же не такой большой круг задач. Имхо, в подавляющем большинстве случаев это не нужно делать. Давай описание задачи - может там все на порядок проще решается ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2004, 13:20 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Есть прога, скажем Диспечер. Есть DB 2. Насчет этого все ок Он следит за таблицей куда падают какие то данные, у каждого падающего в таблицу данного есть скажем номер. По этому номеру Диспечер запускает соответствующий файл(class файл) Вот теперь вопрос: Стоит ли ради этого пихать в БД класс файлы или нет? Или пусть с папки запускает? Таких класс файлов будет 300 ровно. Но все это под OS390 работает, это может привести к затруднениям во время запуска файлов из БД, а из папки они без проблем могут запускатся. Вот чего я боюсь. Допустим напишу проги для всех 300 обьектов(Я не один конечно, 15 программеров). И залю всю эту приблуду в таблицу, я все это пишк пока на WindowsXP И иду спокойно на OS390 b запускаю диспечер, и вдруг ошибка еще 200 ошибок. Вот теперь сиди и расхлебывай все это дерьмо. А из папки все таки легче. Как думает Народ? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2004, 14:01 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
сорри за оффтоп, java на 390 работает? . ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2004, 14:31 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
2 VortexCorba Насовсем понятно зачем Вам все это?! Примерно выглядит типа как запахивать .exe файлы в базу, а потом их "запускать". И зачем? В чем смысл то? 2 Новый Год http://www-1.ibm.com/servers/eserver/zseries/software/java/ ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2004, 16:14 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Aion, я споросил спросил про то, можно ли счтитать j2ee на 390 нормально функционирующей :) WebSphere на 390 доступно для меня, хотя я под нее и не пишу. но зато поспоянно слышу комментарии коллег:) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2004, 16:32 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
А что действительно что ли такие проблемы? А как обстоят дела для WebSphere for AS/400? Мы сейчас ожидаем заключения контракта, который полностью ориентирован на WebSphere, отсюда и интерес. зы. У меня на АСке жаба работает нормально, правда не под WebSphere, а под Domino и правда тоже не Ж2ИИ :). ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2004, 17:34 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Имхо: Пихать это добро в базу не следует - просто нет никакого смысла. Просто завести конфигурационный файл который по номеру записи (назовем к примеру transaction id) будет инстанциировать определенный класс и запускать его. Положить все в один jar файл и не мучится. Диспетчер такой пишется за день-два. Если возникнет необходимость он легко переносится на отдельную машину (чтобы не совмещать БД и приложение). Сам по себе интересен вопрос нотификации что поступили новые данные. Как это будет выглядеть? При желании можно просто посмотреть может что-либо из существующих реализаций подходит. Что еще смущает: авторДопустим напишу проги для всех 300 обьектов(Я не один конечно, 15 программеров). И залю всю эту приблуду в таблицу, я все это пишк пока на WindowsXP Немного смущает такой подход... Т.е. насколько я понимаю задачи будут похожие - наверняка можно обобщить какие-то операции, написать какую-то общую библиотеку для обработки Или что-то подобное - а то писать 300 обработчиков - или все операции настолько уникальны? Можно вкратце какого рода обработка будет? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.09.2004, 17:53 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Обработка будет как сказать обработка сообщении которые падают в концентратор а оттуда другая пога берет и заливает в таблицу, не давно написали прогу которая уже залитые в таблицу сообщения проверяют по конкретным параметрам(используя рег. выр) и заливает в еще другую таблицу. Ав от последняя таблица уже чиста сообщения. Теперь надо завершающую прогу написать которая бы обрабатывала эти сообщения по номерам сообщении. к примеру: 200 - сообщ. Диспечер вызвает прогу для обр. 200 сообщ. и т.д.и.т.п Короче все это в одну прогу незя, да проффесиональняй подход это делить прогу на части типа. Короче, какая из них будет потом под OS390 труднее. Загрузка в табицу и оттуда вытаскивать и запускать класслоадеером? или из jar файла вытаскивать и запускать прогу? Еще момент если поступят новые сообщ. как мы поступим? Ну можно в jar пихнуть новый файл, но тода теряем автоматизацию, с другой стороны из таблицы в OS390 вытаскивать и запускать для меня немношко страшно, чувствую какой то подмох. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2004, 04:53 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Новый Год Sorry, не совсем я понял что имелось ввиду... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2004, 22:49 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
В jar будет проще. Если что-то новоя появится то переложить jar и перезапустить сервер будет достаточно просто. Автоматизировать это также легко - или скриптом в системе или, если хочется делать удаленно, можно через ant - к примеру: при наличии ftp + telnet/ssh можно написать скрипт под ant который будет доставать последние исходники из системы контроля версий, компилировать, паковать, заливать по ftp на сервер и через telnet делать рестарт. Это к вопросу о выкладывании нового кода. Если требуется динамическая загрузка классов, можно взять готовый контейнер, который ее поддерживает и писать для него компоненты-обработчики событий. Что-либо вроде phoenix справится вполне. Чем решение с использованием сервера не нравится - скорость ниже, если класс ссылается на другие классы залитые в таблицы, то необходимо устанавливать этот класслоадер для потока обработчика. Если тот запрашивает новый класс тогда искать его сначала в таблицах БД, если не найден - передавать управление класслоадеру верхнего уровня. Т.е. сделать так конечно можно, и работать будет, только зачем так усложнять? В любом случае если понадобятся новые библиотеки или еще что - потребуется перезапуск контейнера обработчиков. Да и трудно представить решение где 1 обработчик = 1 классу. Разве что они просто дико примитивны - но тогда наверняка можно их обобщить. [q]Короче все это в одну прогу незя, да проффесиональняй подход это делить прогу на части типа.[/q] 1 сlass file не есть прога. Прога здесь - это система обработки в целом :) а конкретный класс - просто обработчик определенного сообщения. И все же стоило бы поискать в них общее что-либо. А то 200 хэндлеров и все с нуля писать... или даже копи-пастом... не дело это, имхо. Для увеличения эффективности обработки пул потоков поставить - обрабатывать параллельно несколько задач. А обработка сама какого рода? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2004, 02:12 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Я тоже придерживаюсь такого мнения, но поробуйте наших переубедить. Самое интересное это то что они никто из них не писал никогда класслоадер и хотят чтобы я написал, я бы написал, но эффективности не вижу. Нет никакой пользы, они говорят что если из таблицы то можно новую обработку только в таблицу залить и все. А с jar файлом тоже самое будет, я уверен. Перезапуск диспечера токо нада. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2004, 06:24 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Возможно такое: import java.io.IOException; public class LocalClassLoader { public static void run(String classFile) throws IOException { Process p = Runtime.getRuntime().exec("java " + classFile); p.waitFor(); System.out.println("File was runned"); int ret = p.exitValue(); } public static void main(String args[]) throws IOException { String className = "Outer"; run(className); } } Можно запускать java компилятор указывая класс файл который запустится? Знаю что javac можно использовать для компиляции. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2004, 10:29 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Писать так конечно можно, только есть это большое извращение... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2004, 13:13 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
А я писал, java компилятор запускается, но файл которого он запускает ничего не делает, у меня он должен был записать в текстовый файл что то, но он не сделал ничего. Почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2004, 15:56 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
И к тому же разве нельзя сделать как нибудь так: Один раз запустишь компилятор а потом с изменением файлов он запускает эти файлы, но сам не перезапускается? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2004, 15:59 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
??? А в чем проблема сделать приложение, откомпилировать, оттестировать и запустить нормально, а не компилировать из приложения? Изгаляться конечно можно как угодно, но я не помню, чтобы, к примеру на С/Pascal при вызове, чекали исходник, если изменился, запускали компилятор, линковщик а затем через exec(...) получившийся exe-файл. java.exe - не компилятор, это рантайм. Компилятор - javac ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2004, 19:41 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Изянки, я имел ввиду что почему то у меня уже откомпилированный класс файл через прогу вызовом java рантайма не работает. Почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2004, 06:00 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Написал ClassLoader, возникла такая проблема: 1.Class cl = Class.forName("TestModule", true, loader); Передает методу loader класс файл. Это когда и главнаый и файл которого по байтам будут читать находятся в одной папке. А так писать почему то незя: Class cl = Class.forName("C:/TestModule", true, loader); т.е когда файл находится в другой папке он сразу кричит: FileNotFoundException.... А как сделать чтобы он из любой папки запускал? И воаще я собраюсь из БД вытаскивать файл, он в байтовом массиве придет, а моя прога не только байтовый массив, даже из другой папки класс файл не может запустить, что за фигня? есть еще такой момент: ResultSet rs = stms.executQuery(select classfile from table1); ....допустим выводит так: while(rs.next) { System.out.println(rs.getBytes(1)); } СТОП!!! А как теперь все это добро которое вышло из таблицы присвоить к какой то перемекной притом массиву байтов? Как делается такая фигня? Допустим кто то подскажет как получить файл и пихнуть в байт массив, а прога то прога моя не примет байт массив, он токо класс файлы принимает. Кто что подскажет? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2004, 13:08 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Если требуется динамическая загрузка классов, можно взять готовый контейнер, который ее поддерживает и писать для него компоненты-обработчики событий. Что-либо вроде phoenix справится вполне. 1. phoenix - что такое? 2. он работает под OS 390? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2004, 14:18 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
А так писать почему то незя: Class cl = Class.forName("C:/TestModule", true, loader); т.е когда файл находится в другой папке он сразу кричит: FileNotFoundException.... А как сделать чтобы он из любой папки запускал? В classpath папку добавить из которой грузить файлы надо. СТОП!!! А как теперь все это добро которое вышло из таблицы присвоить к какой то перемекной притом массиву байтов? Как делается такая фигня? Метод ClassLoader.defineClass( ... ); 1. phoenix - что такое? 2. он работает под OS 390? Контейнер для объектов написанных на java с некоторыми полезными свойствами. Лежит на jakarta.apache.org. Сам не зпускал, но скорее всего работает, раз там java есть ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2004, 00:15 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Правильно, я знаю что можно пользоватся этим: автор Метод ClassLoader.defineClass( ... ); Уже пользуюсь. Но если для того чтобы понять мою проблему все таки придется выставить весь код, аот он: Это код ClassLoader - а: Код: 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.
Класс Main: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
1. Main класс вызывает метод loader, ему передает класс файл через forName() А дальше что он делает? Кто нибудь опишите по коду DynamicClassOverLoader ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2004, 06:41 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
надо написать прогу которая реагировала бы на изменение в таблице. Можно сделать бесконечный цикл который вечно проверяет таблицу. Но мне кажется это не решение. От такого цикла прога может заглючить, захлебнутся. Какаво ваше мнение? Как можно выйти из такой ситуации? Есть альтернативный вариант? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2004, 08:25 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Это несложно. К примеру пусть у тебя каждый обработчик имплементирует общий интерфейс. Например: Код: plaintext 1. 2. 3. 4.
Поэтому в том месте где ты получил объект просто пишешь, с учетом того что все они имеют метод perform(...): Код: plaintext 1. 2. 3. 4. 5. 6. 7.
От бесконечного цикла прога конечно не загнется. Можешь job запускать через определенное время который будет это делать. Это все тоже от условий задачи зависит. Как часто нужно это запускать? Это real-time обработка или можно отложить выполнение на некоторое время? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2004, 17:52 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Это real-time. автор public interface MessageHandler { void perform(HandlerContext ctx) throws Exception; } ..... Object o = class.newInstance(); if (o instanceof MessageHanlder) { ((MessageHandler)o).perform(...); } .... Ивини, но я никогда этими не пользовался, если не трудно суть обясни, в чем заключается такое программирование? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2004, 06:04 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Хорошо. Вот простой пример ниже с указанными классами. Идея довольно простая - вызываешь класс Dispatcher с параметром - идентификатор транзакции. java Dispatcher 101 java Dispatcher 102 Класс читает настройки из текстового файла dispatcher.properties. В нем соответствие каждой транзакции поставлен обработчик. 101=ru.sql.forum.db2.Handler1 - означает что для транзакции 101 будет использован обработчик Handler1. И т.д. Соответственно если появляется новая транзакция - пишешь для нее класс и прописываешь в этом файле пару - ID<->класс обработчик. Просто каждый обработчик имплементрирует MessageHandler интерфейс - в нем и происходит обработка - просто ты знаешь что у класса есть метод perform который используется для обработки. HandlerContext - просто позволяет передать какие-то дополнительные параметры в обработчик (если нужно). По поводу непосредственно проверки что есть данные для обработки. Вы написали: Обработка будет как сказать обработка сообщении которые падают в концентратор а оттуда другая пога берет и заливает в таблицу, не давно написали прогу которая уже залитые в таблицу сообщения проверяют по конкретным параметрам(используя рег. выр) и заливает в еще другую таблицу. А в чем сложность из этого приложения нотифицировать диспптчер что появились новые данные для обработки? Это было бы проще всего - не надо сканировать таблицу в Db2. А способов нотификации много - просто посмотреть что лучше всего подойдет. Дальше как обычно вопросы: - эти проги на одной машине будут или на разных? и т.д. Это решаемо Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2004, 17:02 |
|
|
start [/forum/topic.php?all=1&fid=43&tid=1606140]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
75ms |
get tp. blocked users: |
1ms |
others: | 300ms |
total: | 471ms |
0 / 0 |