Просмотр полной версии : Program too big to fit in memory
ravakyan
21.06.2015, 21:08
Добрый день.
Касса фаст-фуд 6,79 с установленным на нем сервером.
Поднята сеть TCP/IP
При регистрации менеджером все функции работают, однако как только регистрируется кассир, кипер вылетает в дос и выдает ошибку "Program too big to fit in memory"
Если есть у кого соображения по решению проблемы, без отключения TCP/IP и переноса сервера, буду очень благодарен.
всего два варианта:
1. менеджер памяти
2. волшебная палочка.
выбирайте.
VampireKB
22.06.2015, 02:12
есть еще 3-ий :) Ставьте Фаст-Фуд от ВампираКБ на любую оконную ОС и будьте счастливы :)
Какой ДОС?
Какая сетка?
Что за сборка tcp/ip?
Надо начать с инишников и поотключать все, что можно.
ravakyan
26.06.2015, 21:52
Спасибо Все огромное за отзыв!!
Завтра планирую заехать на объект и выложу информацию!
ravakyan
27.06.2015, 20:27
Добрый день.
Скидываю информацию по кассе:
DR-DOS 7.02
AUTOEXEC.BAT
@ECHO OFF
prompt $p$g
path=c:\util;c:\drdos;c:\net;c:\vc;c:\tkit;
vga#font
;mode com1: 9600,n,8,1
mode com2: 9600,n,8,1
mode com3: 9600,n,8,1
mode com4: 9600,n,8,1
set TKT1=2E8 11
tpanel.exe -1 -g1024x768
dtime
CALL C:\NET\netstart.bat
CALL C:\RK6START.BAT
REM vc
CONFIG.SYS
BREAK=ON
FILES=110
BUFFERS=32
DEVICE=C:\DRDOS\HIMEM.SYS
REM DEVICE=C:\DRDOS\EMM386.EXE ON
DEVICEHIGH=C:\NET\IFSHLP.SYS
DOS=HIGH,UMB
LASTDRIVE=d
NETSTART.BAT
@Echo ON
cd c:\net
LH C:\drdos\share.exe
LH C:\NET\net initialize
C:\NET\netbind.com
LH C:\NET\umb.com
LH C:\NET\tcptsr.exe
LH C:\NET\tinyrfc.exe
LH C:\NET\nmtsr.exe
LH C:\NET\emsbfr.exe
LH C:\NET\net start workstation
LH C:\NET\net start server
REM C:\NET\net share c=c:\ /f /y
rem C:\NET\net logon Kassa Kas01 /y
C:\NET\sockets.exe
PROTOCOL.INI
[network.setup]
version=0x3110
netcard=rtl8139,1,RTL8139,1
transport=tcpip,TCPIP
lana0=rtl8139,1,tcpip
[RTL8139]
Medium=_10Full
DriverName=rtsnd$
[protman]
DriverName=PROTMAN$
PRIORITY=MS$NDISHLP
[MS$NDISHLP]
DriverName=ndishlp$
BINDINGS=RTL8139
[MS$NETBEUI]
DriverName=netbeui$
SESSIONS=40
NCBS=80
BINDINGS=RTL8139
LANABASE=0
[TCPIP]
NBSessions=20
DriverName=TCPIP$
BINDINGS=RTL8139
LANABASE=0
Subnetmask0=255 255 255 0
IPAddress0=192 168 020 012
DefaultGateway0=192 168 020 254
SYSTEM.INI
[network]
filesharing=yes
printsharing=no
autologon=no
computername=UNIT02
lanroot=C:\NET
username=KASSA
workgroup=WORKGROUP
reconnect=no
directhost=no
dospophotkey=N
lmlogon=0
logondomain=WORKGROUP
preferredredir=basic
autostart=basic,,server
maxconnections=8
[network drivers]
netcard=rtsnd.dos
transport=tcpdrv.dos,nemm.dos
devdir=C:\NET
LoadRMDrivers=yes
[Password Lists]
KASSA=C:\NET\KASSA.PWL
*Shares=C:\NET\Shares.PWL
[386Enh]
TimerCriticalSection=5000
UniqueDosPSP=TRUE
PSPIncrement=2
device=vsockets.386
device=vbapi.386
TCPUTILS.INI
[tcpglobal]
drivername=GLOBAL$
hostname=UNIT02
[sockets]
drivername=SOCKETS$
bindings=TCPIP_XIF
numsockets=4
numthreads=32
poolsize=3200
maxsendsize=1024
[telnet]
drivername=TELNET$
bindings=TCPIP_XIF
nsessions=0
max_out_sends=0
Во-первых, можно попробовать раскомментировать менеджер памяти _вместо_ HIMEM:
REM DEVICE=C:\DRDOS\EMM386.EXE ON
Во-вторых, можно попробовать убрать режим сервера:
LH C:\NET\net start server
А вообще, вот:
--------------------------
В связи с некоторыми изменениями в кассовой части R-Keeper, связанными с реализацией поддержки сети, назрела необходимость в следующем описании.
Наверное всем, кто когда-либо устанавливал поддержку протокола TCP/IPi, известна проблема нехватки начальной памяти на рабочей станции. Происхоит это из-за того, что в сетевом клиенте обязательно должна быть включена поддержка Full Redirector ,который необходим для поддержки расширенных функций, в отличии от Basic Redirector, который обеспечивает только стандартные возможности, но при этом требует меньшее кол-во памяти. Также нехватка памяти может происходить из-за поддержки на кассе не только функций рабочей станции (workstation), но и сервера (server), но об этом немного ниже. В принципе выход из этой ситуации существует – это использование менеджера памяти EMM386, вместо HIMEM, тем более что в реализации DR-DOS он работает немного по-другому, нежели в MS-DOS, но полной совместимости с R-Keeper гарантировать нельзя – проблема при использовании EMM386 как раз и проявилось на одном из используемых терминалов.
Итак, что было модифицировано – библиотеки NETWORK.DLL и NBCHANEL.DLL. Эти библиотеки позволяют не использовать Full Redirector и/или функции рабочей станции (workstation), что дает возможность освободить дополнительную память, необходимую для загрузки сетевого клиента с поддержкой TCP/IP.
Что мы теряем при использовании Basic Redirector-а:
- во-первых, при использовании ДОСовского кассового сервера, касса не сможет больше самостоятельно подключать сетевые диски. Это использовалось при указании сетевых путей (\\server\menu6 и т.д.) в файле local.db. Но использование сетевых путей не всегда стабильно работало при установке менеджерской базы на Windows NT, да и к тому же есть другие средства (RKSHARE, например) для доступа к базе
-во-вторых, нельзя использовать общие сетевые принтера напрямую, но для этого тоже существует альтернатива (SPRED)
Кроме того, при загрузке сетевого клиента без поддержки workstation не будет возможности подключать сетевые ресурсы (команда net use), что также не является необходимым, особенно при использовании выделенного кассового сервера (NT)
Взять новые библиотеки можно на ftpi в директории /dealers/r-keeper/tools/tcpip/kacca
Теперь несколько замечаний относительно установки и конфигурирования протокола TCP/IP на рабочих станциях.
Для установки можно воспользоваться дистрибутивом Microsoft Network Client version 3.0 for MS-DOS. В этом клиенте есть поддержка практически всего, что требуется для работы, за исключением поддержки функций сервера (server), т.е. общие ресурсы на кассе открыть нельзя (функция net share недоступна). После установки этого клиента можно воспользоваться новыми сетевыми библиотеками (NETWORK.DLL и NBCHANEL.DLL) и использовать Basic Redirector для оптимизации памяти
Взять Microsoft Network Client version 3.0 можно на ftp в директории /dealers/r-keeper/tools/tcpip/msclient. В директории два файла – install.zip (установочный дистрибутив), rtl8139.zip – сконфигурированный клиент для станций на базе Realtek 8139 (не требует инсталляции)
Возможно, более интересным вариантом является использование сетевого клиента с поддержкой TCP/IP и функций сервера, т.е. возможностью открывать общие папки на кассовой станции. Сформировать такого клиента можно на базе стандартного Microsoft Workgroup Add-On for MS-DOS (знакомый всем ADDON). Необходимо его установить и предварительно настроить. Далее необходимо скопировать в установленную директорию NET файлы из пакета Microsoft TCP/IP for Windows for Workgroups 3.11 (можно взять на ftp в директории /dealers/r-keeper/tools/tcpip/wfwtcp/wfwtcp.zip).
В autoexec.bat на кассовой станции добавляем следующие строки:
C:\NET\net initialize
C:\NET\netbind.com
C:\NET\umb.com
C:\NET\tcptsr.exe
C:\NET\tinyrfc.exe
C:\NET\nmtsr.exe
C:\NET\emsbfr.exe
C:\NET\net start
Далее необходимо модифицировать конфигурационные файлы SYSTEM.INI и PROTOCOL.INI в директории NET:
PROTOCOL.INI:
- в разделе [network.setup] находим переменную transport. Изменяем ее значение на tcpip,TCPIP , т.е. строка должна выглядеть так:
transport=tcpip,TCPIP
-в том же разделе изменяет значение переменной lana0 на RTL8139,1,tcpip (это для сетевой карты Realtek 8139), т.е. стока должна выглядеть так:
lana0=RTL8139,1,tcpip
Создаем раздел [TCPIP] со следующим содержимым:
[TCPIP]
NBSessions=6
SubNetMask0=255 255 255 0
IPAddress0=198 154 196 200
DefaultGateway0=198 154 196 89
DriverName=TCPIP$
BINDINGS=RTL8139
LANABASE=0
где указываем необходимые значения
SYSTEM.INI
В разделе [network drivers] находим переменную transport и изменяем ее значение на tcpdrv.dos,nemm.dos, т.е строка должна выглядеть так:
transport=tcpdrv.dos,nemm.dos
В разделе [network] можно ничего не менять, но есть две переменные, которые отвечают за некоторые настройки:
1. preferredredir – значение переменной отвечает за то, какой режим будет загружен – Full Redirect или Basic Redirect. По умолчанию загружается поддержка Full Redirect (значение переменной preferredredir=full) –можно изменить значение на basic для поддержки Basic Redirector и экономии памяти
2. autostart – можно указать, поддержка какого режима будет загружаться автоматически. Возможно несколько вариантов:
autostart=full – загрузка всех служб (server+workstation)
autostart=server – поддержка только служб сервера
autostart=workstation – поддержка только служб рабочей станции
Для экономии памяти можно указать autostart=server - в таком случае будет возможность открывать общий доступ к файлам и папкам кассовой станции
В итоге получаем рабочую станцию с поддержкой TCP/IP и возможностью общего доступа к ресурсам.
Остается вопрос конфигурирования станции при использовании сервера DHCP, но это, наверняка, можно реализовать с помощью дополнительных служб
(с) UCS, Евгений Волик.
ravakyan
28.06.2015, 17:57
Добрый день.
Спасибо огромное, отключил в confit.sys DEVICE=C:\DRDOS\HIMEM.SYS
И включил DEVICE=C:\DRDOS\EMM386.EXE ON
Кассы запустились!
Hendehog
25.02.2016, 16:25
6,97.
Такая же херня.
Сделал чернобелый так, выключил cor, scandisk,и тп.
Места на диске больше гига.
Вырубал сеть и физически (тупо вытащил патчкорд) и network-off (во втором случае Аварийное завершение ошибка номер 2).
Вырубал и share , autostart тоже менял толку ноль.
Диск сканил и на вирусню, и на ошибки - нету.
Именно при загрузке "RK6.exe" вылетает эта ошибка.
EMM386.EXE
Его не пробовал.
Поделитесь кстати кто-нибудь, у нас нет в дистрибутиве.
Возможно проблема решиться "пересобрав" клиента.
Но все таки очень интересна причина этого.
Лучше под винду поставить.
Powered by vBulletin® Version 4.2.6 LTS Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot