Here is my trouble: I cannot change sort order, language and charset of the
RepServer after I installed and configured it. It uses cp850,binary
sort,English but my 2 ASE 12.5 work with russian charset cp1251 and nocase
sort order and now I just don't have any idea about how to make them
compatible!
Is it possible to do something with it?
RepServer doesn't accept configuration file if I change its charset to
cp1251 and doesn't produce any log at all!!
I will be really grateful for any suggestions
I've tried almost everything I could!
Is there a reason why you don't just trash the current RS implementation
and re-install it with the same sortorder/language/charset as your ASE?
--
Mark A. Parsons
Iron Horse, Inc.
iron_...@NOSPAM.compuserve.com
I'm not sure that it will help and I've already spent a great deal of time
reinstalling my system again and again..
I've tried to install a new RepServer through rs_init utility, but there is
still no possibility to choose right configuration
That is why I'm not sure
The problem, as it seems to me, is that my charset isn't installed in
RepServer but I don't know how to do this
I've tried to modify almost all config files in SYBASE directory(locales,
charsets etc..) but with no success
All that I succeeded to do is to change RepServer's config file to use
english with binary sort but using cp1251(russian charset)
To do this I created cp1251 folder in %SYBASE%/locales/english and copied
all contents of %SYBASE%/locales/english/cp850 folder
Then I changed %SYBASE%/locales/locales.dat so that there is a line in [nt]
section:
locale = default, us_english, cp1251
Then RepServer started but RS sort order is still conflicting with the ASE
one
But I'm not sure about consequences and still don't know what to do
Have you had any luck getting anything out of Sybase TS? or the local
Sybase sales/support office?
In the meantime ...
- What are the old and new values that you're working with in the RS config
file? could you include the *_charset, *_language and *_sortorder
settings?
- What do you get from issuing the following on your ASE:
sp_helpsort
go
- Is there a cp1251 sub-directory under $SYBASE/charsets?
- You're running on NT, right? If so, my locales.dat file has the
following entries under [nt]:
locale = rus, russian, cp1251
Can you add this entry to your locales.dat file and does it do any good?
(Granted, I'm running ASE 12.5.1 so it may be different from what you were
originally provided with 12.5.)
Cause it seems like my problem is not something general and no one knows the
exact solution
> - What are the old and new values that you're working with in the RS
config
> file? could you include the *_charset, *_language and *_sortorder
> settings?
RS config initially had the following values:
RS_charset=cp850
RS_language=english
RS_sortorder=binary
Now:
RS_charset=cp1251
RS_language=english
RS_sortorder=binary
>
> - What do you get from issuing the following on your ASE:
>
> sp_helpsort
> go
>
The result of executing sp_helpsort:
Collation Name | Collation ID
----------------------|---------------------
defaultml 0
thaidict 1
utf8bin 4
altnoacc 39
altdict 45
altnocsp 46
scandict 47
scannocp 48
binary 50
dict 51
nocase 52
nocasep 53
noaccent 54
espdict 55
espnocs 56
espnoac 57
rusnocs 59
cyrnocs 64
elldict 65
hundict 69
hunnoac 70
hunnocs 71
turknoac 73
turknocs 74
> - Is there a cp1251 sub-directory under $SYBASE/charsets?
>
Yes
> - You're running on NT, right? If so, my locales.dat file has the
> following entries under [nt]:
>
> locale = rus, russian, cp1251
>
Yes, this record exists in this section
I would like to ask one more question: is it critically to have the same
sort orders in RS and ASE? And what about charsets?
I am planning the rep system for the Warm Standby and there is only 1 RS and
2 ASE's
There should have been more output from sp_helpsort ... I'm looking for the
section that lists the character set and sort order in use by the ASE (I'm
trying to see the *exact* arg's in use by ASE).
> I would like to ask one more question: is it critically to have the same
> sort orders in RS and ASE? And what about charsets?
When you start mixing character sets and sort orders you run the chance of
corrupting your data and/or causing performance problems. At this point
you have a few options ...
- get all systems working on the same character set and sort order
- run some thorough tests (ie, trial and error) on your system to see if
you can live with any discrepancies which may crop up due to the mismatched
charsets/sortorders
- sort through the ASE and RS documentation for info on
charsets/sortorders; lots of info there to describe how different
charsets/sortorders interact
-------------------
Have you been able to get any help out of Sybase TS?
Yes, i've found more results(this produced isql from the command prompt,
earlier I used Interactive SQL(V 7.0.0 build 313) from Sybase SQL Anywhere
7):
Loadable Sort Table Name
----------------------------------------
Sotr Order Description
--------------------------------------------------------------------
--
Character Set = 53, cp1251
Microsoft Windows Code Page 1251, Cyrillic
Sort Order = 59, rusnocs_cp1251
Russian case-insensitive dictionary sort order for use in Ru
ssia/ Uses the Windows codepage 1251 character set and is case
-insensitive.
---------------------------------------------------------------
Unknown Character Set : rusmocs_cp1251
(return status = 0)
> Have you been able to get any help out of Sybase TS?
>
> --
I think it is possible, but I'm just the beginner in the DBA
Maybe I don't understand simple things
And...you mean phone tech-support, don't you?
Maybe a stupid question on my part ...
Have you tried:
RS_charset=cp1251
RS_language=english
RS_sortorder=rusnocs
or if you want RS messages printed in Russian:
RS_charset=cp1251
RS_language=russian
RS_sortorder=rusnocs
Other possible sort orders (besides rusnocs) should be listed in the
charsets/cp1251 directory ... with extensions of *.srt.
> > Have you been able to get any help out of Sybase TS?
> >
> > --
>
> I think it is possible, but I'm just the beginner in the DBA
> Maybe I don't understand simple things
>
> And...you mean phone tech-support, don't you?
Either phone tech-support or logging a case online at www.sybase.com.
However, both of these require that you have a valid support contract with
Sybase.
Alternatively you could try contacting the (Sybase?) representative/person
who provided/sold you ASE and RS ... they should have access to someone
locally who can help out with technical issues.
Yes, I've tried different combinations of these parameters but the only
working one is the following:
RS_charset=cp1251
RS_language=english
RS_sortorder=binary
That is, I've managed to change the charset but I have no idea why
sort_order cannot be accepted if it is not 'binary'
>
> Either phone tech-support or logging a case online at www.sybase.com.
> However, both of these require that you have a valid support contract with
> Sybase.
>
> Alternatively you could try contacting the (Sybase?) representative/person
> who provided/sold you ASE and RS ... they should have access to someone
> locally who can help out with technical issues.
>
> --
Tech support, as I was told in my organisation, is not a good idea so I will
not use it
But nevertheless I am very grateful for your help and waiting for new
suggestions
> Tech support, as I was told in my organisation, is not a good idea so I will
> not use it
>
> But nevertheless I am very grateful for your help and waiting for new
> suggestions
At this point I'm just grasping at more straws.
I'd check with your local Sybase sales rep to see if s/he can help ...
either get a Sybase consultant to provide some feedback (shouldn't require
a lot of effort on their part, eh?) ... or perhaps point you to another
Sybase client near you with a similar setup.
RS starts but then terminates with errors in log
////////////////start of log
I. 2004/07/08 11:50:46. 'Replication Server/12.1/P/PC Intel/Windows NT
4.0/1/OPT/Thu Feb 22 16:09:46 PST 2001'
I. 2004/07/08 11:50:46. 'Confidential property of Sybase, Inc.
(c) Copyright 1992, 2001
Sybase Inc. All rights reserved.
Unpublished rights reserved under U.S. copyright laws.
This software contains confidential and trade secret information of Sybase,
Inc. Use, duplication, or disclosure of the software and documentation by
the U.S. Government is subject to restrictions set forth in a license
agreement between the Government and Sybase, Inc. or other written
agreement specifying the Government's rights to use the software and any
applicable FAR provisions, for example, FAR 52.227-19.
Sybase, Inc. 6475 Christie Avenue, Emeryville, CA 94608, USA.'
I. 2004/07/08 11:50:46. Logging messages in file
'd:\sybase\REP-12_1\install\MASTERRS.log '.
I. 2004/07/08 11:50:46. Using interfaces file 'd:\sybase\ini\sql.ini '.
I. 2004/07/08 11:50:46. Server name is 'MASTERRS'.
I. 2004/07/08 11:50:46. SYSAM: Replication Server received a valid license.
I. 2004/07/08 11:50:46. Reading 'd:\sybase\REP-12_1\install\MASTERRS.cfg '
for configuration information.
I. 2004/07/08 11:50:46. Using config file encrypted password for the RSSD
primary user.
I. 2004/07/08 11:50:46. Using config file encrypted maintenance password for
the RSSD maint user.
I. 2004/07/08 11:50:46. Using config file encrypted password for the ID
user.
N. 2004/07/08 11:50:46. INTERNAL ERROR #52 GLOBAL RS(GLOBAL RS) -
servmain.c(1525)
CS-Lib routine 'cs_locale' failed.
N. 2004/07/08 11:50:46. INTERNAL ERROR #1029 GLOBAL RS(GLOBAL RS) -
servmain.c(1525)
CS-Library error: Error: 33818168, Severity 6 -- 'cs_locale: cslib user api
layer: common library error: Failed to map a local name to an object id!'.
T. 2004/07/08 11:50:46. (-1): ***************STACK TRACE***************
T. 2004/07/08 11:50:46. (-1): *****thread GLOBAL RS(GLOBAL RS)*******
T. 2004/07/08 11:50:46. (-1): unknown function 0x0095c000 ()
T. 2004/07/08 11:50:46. (-1): pc: 0x00467F9C,
exc__appDumpStack(ffffffff,34,59bb20,95d590)
T. 2004/07/08 11:50:46. (-1): pc: 0x00558BD1, exc_terminate(0,1,f,bc1674)
T. 2004/07/08 11:50:46. (-1): pc: 0x00468782,
exc_reraise_exception(10,95fead,1376ec,bc16b8)
T. 2004/07/08 11:50:46. (-1): pc: 0x00468FEF,
exc_raise_exception(10,34,0,5f5)
T. 2004/07/08 11:50:46. (-1): pc: 0x004657BF,
err_raise_syb_lib_my_maps(0,8,34,5f5)
T. 2004/07/08 11:50:46. (-1): pc: 0x0046512B, err_raise_syb_lib(0,8,34,5f5)
T. 2004/07/08 11:50:46. (-1): pc: 0x004DA142, _cfg_set_locale(95fead,0,0,0)
T. 2004/07/08 11:50:46. (-1): pc: 0x004D89A2, rs_main(5,5f1260,0,1376d0)
T. 2004/07/08 11:50:46. (-1): pc: 0x00559148,
nt_rs_main(1,1376d8,12f82c,77e887dd)
T. 2004/07/08 11:50:46. (-1): unknown function 0x77db243e ()
T. 2004/07/08 11:50:46. (-1): *****End of stack trace.****
T. 2004/07/08 11:50:46. (-1): Internal error. Attempting to produce a core
file.
////////////////end of log
This is the message from Services console when I try to start RS:
[OS : Windows 2000 Prof SP3]
Error 1067: The process terminated unexpectedly
> At this point I'm just grasping at more straws.
>
> I'd check with your local Sybase sales rep to see if s/he can help ...
> either get a Sybase consultant to provide some feedback (shouldn't require
> a lot of effort on their part, eh?) ... or perhaps point you to another
> Sybase client near you with a similar setup.
>
Thank you very much, Mark!
...snip...
NOTE: I'm not an OCS developer and most of the below has been derived from
scrounging through the various OCS docs ... so FWIW ...
---------
Looking at the CS-Library error:
"INTERNAL ERROR #1029 GLOBAL RS(GLOBAL RS) - servmain.c(1525)
...
CS-Library error: Error: 33818168, Severity 6 -- 'cs_locale: cslib user api
layer: common library error: Failed to map a local name to an object id!'."
I couldn't find any info on the 'Failed to map a local name to an object
id!' message in the OCS documentation.
I *did* however run across the $SYBASE/ini/objectid.dat file which has the
following comment near the top of the file:
"Flat-file database for mapping global object identifiers to local names."
RS Error Msg objectid.dat comment
------------------------------------------
GLOBAL RS => global
object id => object identifiers
map => mapping
local name => local names
OK, so maybe I'm grabbing at straws but I'm curious ... but can you find
the following in your $SYBASE/ini/objectid.dat file:
- under [charset]
- an entry for cp1251 ?
- an entry for 1.3.6.1.4.1.897.4.9.1.53 ?
(what charset is assigned to it?)
My objectid.dat file shows the following:
1.3.6.1.4.1.897.4.9.1.53 = cp1251
---------
I found the following comment (RS12.0 Design Guide, pg 113) in reference to
Character-set conversions:
"... if Replication Server detects ... an incompatibility when converting
the configuration file parameters, it prints an error message and shuts
down."
It doesn't say anything about *WHAT KIND OF* error is printed and I haven't
been able to find anything that directly addresses how/why/when the RS
'converts the configuration file parameters' but this does seem to describe
what's happening in your situation.
---------
I did find reference (RS12.0 Reference Manual, pg 416) to an RS
configuration parameter called CONFIG_charset (different from RS_charset)
that is used to write the RS configuration file when you want to use a
charset different from RS_charset.
I also found the following (RS12.1 Release Bulletin for WinNT, pg 22):
**************
6.5.7 Incompatible character-set specification using rs_init
[Bug #68642] rs_init does not prevent you from creating a configuration
file
using an RS_charset parameter that is incompatible with the character set
defined in the CONFIG_charset parameter. For example, if the configuration
file defines an English character set but the CONFIG_charset parameter is
set
to a Japanese character set, the installation proceeds but behaves
unpredictably.
Workaround: Use compatible character sets.
**************
Together these sound kinda/sorta related to the 'converting the
configuration file parameters' issue, ie, a mismatch in the charsets used
to read/write the config file ...
Has CONFIG_charset been set and if so what is it set to?
Is the actual configuration file written in english, russian or something
else?
---------
Getting back to the locale issue ...
Although we're not talking about the RSM Client I found the following
comment (RS12.0 Design Guide, pg 114) in reference to RSM Client Issues:
"Sybase Central and the Sybase Replication Server plug-in ā the RSM Client
ā use the local $SYBASE installation's default locale (language and
charset) settings to connect to the RSM Server. You cannot configure Sybase
Central and the RSM Client locale settings directly. Refer to the Open
Client/Server Configuration Guide for detailed information about
configuring local $SYBASE locale settings."
Taking note of the part about default locales I went off looking for info
on how OCS (Open Client/Server) goes about determining what locale to use
...
In a nutshell, a program (eg, RS) written in/with OCS will call the
OCS:cs_locale routine to determine what locale to use.
cs_locale will first look for any of a given set of environment variables
to determine what character set to use.
The environment variables that I came across are:
LANG
LC_ALL
LC_CTYPE
LC_MESSAGE
LC_TIME
LC_?? (I think there are a couple others, not sure, but they would start
with LC_)
If it doesn't find any of these environment variables ... or they're
defined but with no values ... it will assume a 'default' character set.
With a charset in hand cs_locale goes to the locales.dat file and under the
given OS (eg, [NT]) it looks for an entry with a matching charset (locale =
<charset>,....).
---------
So, what environment variables do you have defined in your environment?
I'm not sure how to list these at the command line but you can find them
using the following:
(I'm using XP so I'm assuming the similar can be used with NT?)
1 - Start -> Settings -> Control Panel -> System -> Advanced -> Environment
Variables
2 - go to your $SYBASE/$SYBASE_OCS/bin directory and run the ocscfg.exe
program; this should fire up a small application with several tabs ... pick
the 'Environment' tab
Could you list the values for all of the following variables:
LANG
LC_ALL
LC_CTYPE
LC_MESSAGE
LC_TIME
LC_?? (any other LC_ variables shown)
SYBASE
SYBASE_ASE
SYBASE_OCS
If a variable(s) is listed in both the Control Panel and ocscfg windows and
it's different please post both versions.
Can you verify that the settings for the SYBASE* variables are correct?
---------
Could you also post the entire contents of the [NT] section from your
locales.dat file? (Make sure you're accessing $SYBASE/locales/locales.dat
using the value for the $SYBASE environment variable listed above.)
---------
The last thing I can think of is that Sybase is looking in another section
(other than [NT]) of the locales.dat file ... either it has the wrong
[vendor] setting or one that is not listed in the locales.dat file.
Unfortunately I don't have the faintest idea how this is determined.
For example ... I'm running WinXP ... my $OS environment variable is
defined as Windows_NT ... and somehow this gets translated into reading the
[NT] section of my locales.dat file. Go figure?!?!?!?! ;-)
---------
So, what do I plan on doing with all this info?
1 - If there's no cp1251 entry in the objectid.dat file I would consider
adding one (1.3.6.1.4.1.897.4.9.1.53 = cp1251) and see if this makes a
difference. (Make sure 1.3.6.1.4.1.897.4.9.1.53 isn't already defined.)
2 - I would want to verify that the SYBASE* variables are correct and if
not, try resetting them to see if this corrects the problem. I would also
want to make sure that the RS RUN_SERVER file contains the correct paths to
all of the repserver command line args.
3 - Although I'm not sure what the relationship is at this point I'd like
to find out the value of the CONFIG_charset parameter and compare this with
the language your RS config file is written in.
4 - If none of the language/locale environment variables have been set I
would suggest trying to set LANG or LC_ALL to 'rus' (and 'russian') and see
if you can get RS to fire up without any errors. (If 'rus' doesn't work
try 'russian'.)
5 - Assuming the rus/russian entry is in the [NT] section of the
locales.dat file I would want to try redefining the 'default' entry to use
'russian,cp1251' (as opposed to 'us_english, iso_1'; also make sure you
back up the original locales.dat file so that you can go back to that at a
later date if necessary).
I returned to the default values (eng,cp850,binary) and set up Warm Standby
as it was told in admin guide and it works now with no language problems!