Скрипты - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II

Lineage II
Дискуссии на тему создания, настройки и обслуживания серверов Lineage 2. При поддержке: Премиум услуги по рекламе

Ответ
Опции темы
Непрочитано 29.01.2009, 16:15   #1
Аватар для VISTALL
Illussion is real

Автор темы (Топик Стартер) Скрипты

Я переделываю сервак Rb под Gracia 2 и под pSQL. уже много сделал. много чёго написано и переписано, очень много полезного. мне нужны все скрипти под Ребу ССР Дрим, тоисть квесты, евенты и так далее на яве конечно. ну что б не сомневались на те мой Гео сервер.
настройки сервера:
-- log.ini
лучше туда не лезьть там настройки на отдельный лог сервак но я его не выложыл.
-- telnet.ini
О. телнет для гео но с минимальным функционалом только
---- restart
---- shutdown
--log_console.ini
лучше туда не лезьть
--server.ini
там настройки на хост порт и + автоматический рестарт(О.о.)
http://rapidshare.com/files/191094808/geo.rar.html

Можите скрипты в етой теме без хайда. Когдато я выложу сервак.(Когда доделаю)
VISTALL вне форума Ответить с цитированием
Непрочитано 29.01.2009, 16:34   #2
Забанен за кидаловo/обман/развод

По умолчанию Ответ: Скрипты

Вот непойму, почему все гонятся за обновлениями то?!
По теме, пСКЛ это замечательно, но МС былоб лучше
А в чём проблема со скриптами?На просторах всё есть и без хайда
Ну если что, пиши в аську ( есть в профиле ) помогу чем смогу
KilRoy вне форума Отправить сообщение для KilRoy с помощью ICQ Отправить сообщение для KilRoy с помощью Skype™ Ответить с цитированием
Непрочитано 29.01.2009, 17:22   #3
Пользователь

По умолчанию Ответ: Скрипты

Цитата:
Сообщение от VISTALL Посмотреть сообщение
Я переделываю сервак Rb под Gracia 2 и под pSQL. уже много сделал. много чёго написано и переписано, очень много полезного. мне нужны все скрипти под Ребу ССР Дрим, тоисть квесты, евенты и так далее на яве конечно. ну что б не сомневались на те мой Гео сервер.
настройки сервера:
-- log.ini
лучше туда не лезьть там настройки на отдельный лог сервак но я его не выложыл.
-- telnet.ini
О. телнет для гео но с минимальным функционалом только
---- restart
---- shutdown
--log_console.ini
лучше туда не лезьть
--server.ini
там настройки на хост порт и + автоматический рестарт(О.о.)
http://rapidshare.com/files/191094808/geo.rar.html

Можите скрипты в етой теме без хайда. Когдато я выложу сервак.(Когда доделаю)
лучшеб интегрировал какойто фреймворк для работы с СУБД:

ORM/DAO слой с помощью фреймворков Hibernate + Spring (на jfree loginserver, но немного надо подкорректировать) Однако эту систему критикуют
либо собственный генератор запросов СУБД в зависимости от текущего драйвера СУБД (наброски этой системы были в l2j но в дальнейшем убрали - смотри L2DatabaseFactory, но можно и собственную разработку). http://superquail.sourceforge.net/index.html
Немного приходится парится с кодом, но затем можно использовать любую СУБД изменив пару строк
__________________
for(;Forum.getPostCount() < Integer.MAX_VALUE; Forum.writeNewPost()); | TERA Video | GamezTERA Emu
Aquanox вне форума Ответить с цитированием
Сказали спасибо:
Непрочитано 29.01.2009, 20:23   #4
Аватар для VISTALL
Illussion is real

Автор темы (Топик Стартер) Ответ: Скрипты

интересно Согласен. ну то что поднапрячся с кодом. Мне не страшно я уже поигрался с переходом на постгрес. ThreadConnection и L2DatabaseFactory у ребы другие... Хоча можно перейди с c3p0 библиотекы конекта и так далее . Вопрос стоит ли?

Добавлено через 5 минут
ребелионовська L2DatabaseConnection
Код:
package l2r.database;

import java.sql.SQLException;
import java.util.Hashtable;
import java.util.logging.Level;
import java.util.logging.Logger;

import l2r.Config;

import com.mchange.v2.c3p0.ComboPooledDataSource;
import com.mchange.v2.c3p0.DataSources;

/**
 * <p>При работе с пулами коннектов иногда возникает ситуация - когда выбираешь весь пул до предела и
 * при этом коннекты не закрываются а требуется получить еще один коннект. В этом случае программа
 * зависает. Так бывает если в процессе выполнения одного запроса при переборке результатов вызывается
 * другая функция, которая также берет коннект из базы данных. Таких вложений может быть много. И коннекты
 * не отпускаются, пока не выполнятся самые глубокие запросы. DBCP и C3P0 висли при этом - опробовано на
 * практике.
 * </p>
 * <p>Для того чтобы избежать этой коллизии пишется оболочка для коннекта, которой коннект
 * делегирует все свои методы. Эта оболочка хранится в локальном пуле коннектов и если коннект запрашивается
 * в потоке - для которого был уже открыт коннект и еще не закрыт, то возвращаем его.
 * </p>
 * Эту возможность можно отключить выставив в настройках сервера UseDatabaseLayer = false;
 */
public class L2DatabaseFactory
{
	private static L2DatabaseFactory _instance;
	private ComboPooledDataSource _source;

	//список используемых на данный момент коннектов
	private final Hashtable<String, ThreadConnection> Connections = new Hashtable<String, ThreadConnection>();

	static Logger _log = Logger.getLogger(L2DatabaseFactory.class.getName());

	public L2DatabaseFactory() throws SQLException
	{
		_instance = this;
		try
		{
			if(Config.DATABASE_MAX_CONNECTIONS < 2)
			{
				Config.DATABASE_MAX_CONNECTIONS = 2;
				_log.warning("at least " + Config.DATABASE_MAX_CONNECTIONS + " db connections are required.");
			}

			Class.forName(Config.DATABASE_DRIVER).newInstance();

			if(Config.DEBUG)
				_log.fine("Database Connection Working");

			_source = new ComboPooledDataSource();
			_source.setDriverClass(Config.DATABASE_DRIVER); //loads the jdbc driver
			_source.setJdbcUrl(Config.DATABASE_URL);
			_source.setUser(Config.DATABASE_LOGIN);
			_source.setPassword(Config.DATABASE_PASSWORD); // the settings below are optional -- c3p0 can work with defaults
			_source.setAutoCommitOnClose(true);
			_source.setInitialPoolSize(1);
			_source.setMinPoolSize(1);
			_source.setMaxPoolSize(Config.DATABASE_MAX_CONNECTIONS);
			_source.setAcquireRetryAttempts(0);// try to obtain Connections indefinitely (0 = never quit)
			_source.setAcquireRetryDelay(100);// 500 miliseconds wait before try to acquire connection again
			_source.setCheckoutTimeout(0); // 0 = wait indefinitely for new connection
			_source.setAcquireIncrement(5); // if pool is exhausted, get 5 more Connections at a time
			_source.setMaxStatements(100);
			_source.setIdleConnectionTestPeriod(60); // test idle connection every 1 minute
			_source.setMaxIdleTime(600); // remove unused connection after 10 minutes
			_source.setNumHelperThreads(5);
			_source.setBreakAfterAcquireFailure(false);

			/* Test the connection */
			_source.getConnection().close();
		}
		catch(SQLException x)
		{
			if(Config.DEBUG)
				_log.fine("Database Connection FAILED");
			// rethrow the exception
			throw x;
		}
		catch(Exception e)
		{
			if(Config.DEBUG)
				_log.fine("Database Connection FAILED");
			throw new SQLException("could not init DB connection:" + e);
		}
	}

	public static L2DatabaseFactory getInstance() throws SQLException
	{
		if(_instance == null)
			new L2DatabaseFactory();
		return _instance;
	}

	public ThreadConnection getConnection() throws SQLException
	{
		ThreadConnection connection;
		if(Config.USE_DATABASE_LAYER)
		{
			String key = generateKey();
			//Пробуем получить коннект из списка уже используемых. Если для данного потока уже открыт
			//коннект - не мучаем пул коннектов, а отдаем этот коннект.
			connection = Connections.get(key);
			if(connection == null)
				try
				{
					//не нашли - открываем новый
					connection = new ThreadConnection(_source.getConnection());
				}
				catch(SQLException e)
				{
					_log.warning("Couldn't create connection. Cause: " + e.getMessage());
				}
			else
				//нашли - увеличиваем счетчик использования
				connection.updateCounter();

			//добавляем коннект в список
			if(connection != null)
				synchronized (Connections)
				{
					Connections.put(key, connection);
				}
		}
		else
			connection = new ThreadConnection(_source.getConnection());
		return connection;
	}

	public int getBusyConnectionCount() throws SQLException
	{
		return _source.getNumBusyConnectionsDefaultUser();
	}

	public int getIdleConnectionCount() throws SQLException
	{
		return _source.getNumIdleConnectionsDefaultUser();
	}

	public Hashtable<String, ThreadConnection> getConnections()
	{
		return Connections;
	}

	public void shutdown()
	{
		_source.close();
		Connections.clear();
		try
		{
			DataSources.destroy(_source);
		}
		catch(SQLException e)
		{
			_log.log(Level.INFO, "", e);
		}
	}

	/**
	 * Генерация ключа для хранения коннекта
	 *
	 * Ключ равен хэш-коду текущего потока
	 *
	 * @return сгенерированный ключ.
	 */
	public String generateKey()
	{
		return String.valueOf(Thread.currentThread().hashCode());
	}
}
Цитата:
Вот непойму, почему все гонятся за обновлениями то?!
По теме, пСКЛ это замечательно, но МС былоб лучше
А в чём проблема со скриптами?На просторах всё есть и без хайда
Ну если что, пиши в аську ( есть в профиле ) помогу чем смогу
я не гонюсь просто полезные функции.
НУу ч то с Лог сервером то ищо долго даже хоть до бета реализа.
Хочу сделать норм серв под х1 рейты гдето

Добавлено через 10 минут
Aquanox

Hibernate Core
An excellent Java framework, the Hibernate project provides nearly transparent persistence for Java classes. It supports association, inheritance, polymorphism, composition, and the standard Java collection classes. Instead of invasive inheritance, manual interface implementation, code generation, or post-processing, Hibernate uses run-time reflection at system initialization to generate SQL and proxy implementations.

The API and query language (HQL) have the object-oriented feel of Versant, yet Hibernate supports blazing fast access to MySQL Server, PostgreSQL, Oracle, DB2, and many other relational databases. Hibernate works well both inside and outside of application servers. Many programmers are beginning to consider Hibernate as a preferred alternative to CMP in J2EE environments.

Spring Framework
The Spring project provides a layered Java/J2EE application framework based on code published in Expert One-on-One J2EE Design and Development by Rod Johnson (Wrox, 2002). The Spring Framework includes:

A complete lightweight container, providing centralized, automated, and transparent configuration and wiring of your application objects.

A common abstraction layer for transaction management, allowing for pluggable transaction managers, and making it easy to demarcate transactions without dealing with low-level issues. In contrast to plain JTA or EJB CMT, Spring's transaction support is not tied to any J2EE environment.

A JDBC abstraction layer that simplifies error handling and greatly reduces the amount of code you need to write.

Integration with Toplink, Hibernate, JDO, and iBATIS SQL Maps.

First-class Hibernate support with lots of IoC convenience features, addressing many typical Hibernate integration issues.

Fully integrated AOP functionality meaning you can AOP-enable any object managed by Spring. For example, you can have declarative transaction management without EJB, even without JTA, if you're using a single database in Tomcat or another web container without JTA support.

A flexible MVC web application framework. This framework is highly configurable via strategy interfaces, and accommodates multiple view technologies like JSP, Velocity, Tiles, iText, and POI.

The ability to combine a Spring middle tier with any other web MVC framework, like Struts, WebWork, or Tapestry.

A layered architecture so that each piece of functionality builds on lower levels. So you can use the JavaBeans configuration management without using the MVC framework or AOP support. But if you use the MVC framework, because it builds on the configuration framework, you can apply knowledge about configuration management to the MVC framework immediately.

Use Spring's functionality in any J2EE server, and most of it also in non-managed environments. A central focus of Spring is to allow for reusable business and data access objects that are not tied to specific J2EE services. Such objects can be reused across J2EE environments (web or EJB), standalone applications, test environments and the like without any hassle.

Мне уже нравится.можно посмотреть

Последний раз редактировалось DarkLoki; 03.02.2009 в 13:15. Причина: Добавлено сообщение
VISTALL вне форума Ответить с цитированием
Непрочитано 29.01.2009, 22:44   #5
Пользователь

По умолчанию Ответ: Скрипты

Я ведь написал что сфовский L2DatabaseFactory а не ребовский\ссровский.
Идея такова = есть маркер, отвечающий за текущий тип СУБД, все запросы идут в класс-генератор и в зависимости от маркера генерируют верный запрос.
__________________
for(;Forum.getPostCount() < Integer.MAX_VALUE; Forum.writeNewPost()); | TERA Video | GamezTERA Emu
Aquanox вне форума Ответить с цитированием
Непрочитано 30.01.2009, 10:38   #6
Аватар для VISTALL
Illussion is real

Автор темы (Топик Стартер) Ответ: Скрипты

тоисть сделать универсальный сервак
VISTALL вне форума Ответить с цитированием
Непрочитано 30.01.2009, 13:48   #7
Пользователь

По умолчанию Ответ: Скрипты

Цитата:
Сообщение от VISTALL Посмотреть сообщение
тоисть сделать универсальный сервак
лучшеб занялся оптимизацией запросов а не адаптацией к новой субд.
__________________
for(;Forum.getPostCount() < Integer.MAX_VALUE; Forum.writeNewPost()); | TERA Video | GamezTERA Emu
Aquanox вне форума Ответить с цитированием
Непрочитано 30.01.2009, 14:10   #8
Аватар для VISTALL
Illussion is real

Автор темы (Топик Стартер) Ответ: Скрипты

адаптация почти закончена. MySQL не знаю мне не по душе.я уже все перевёл на postgreSQL.
Оптимизация запрос итак идет потому-что все однно их переписываю
VISTALL вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


© 2007–2020 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 17:59. Часовой пояс GMT +3.

Вверх