Run xmlaccess command locally against remote portal server - websphere-portal

I'm trying to run xmlaccess from my computer and websphere portal server is installed on different machine connected over lan with mine. I did all the configuration of adding jar files on my computer and then running the xmlaccess command with required parameters. but i keeps on giving the same output and doesn't create an output file.I have copied all the jar files as given on ibm knowledge centre.
this is command i give and the output i get everytime, when running the same command on the machine where websphere is installed, it creates the output file and works all fine
C:\Users\Admin\Desktop\deployment>xmlaccess -in C:\Users\Admin\Desktop\deploymen
t\ExportAllPortlets.xml -url http://172.16.100.227:10039/wps/config -out Exporte
dWebModules.xml -user ****** -password ******
Licensed Materials - Property of IBM, 5724-E76, 5724-E77, 5724-I29 and 5655-Y16,
(C) Copyright IBM Corp. 2001, 2014 - All Rights reserved. US Government Users R
estricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule
Contract with IBM Corp.
EJPXB0001I: Command line parameters:
-in <xml input file>
[-user <user name>]
Will be queried over the console, if omitted
[-password <password>]
Will be queried over the console, if omitted
[-useEncryptedCredentials <file>]
Retrieve user name and password from properties file. Update fil
e with encrypted password.
[-noUpdateProperties]
Do not save encrypted password back to properties file.
[-out <output file>]
default: write to stdout
[-url <portal config URL>]
default: http://localhost/wps/config
[-attempts <max. connection attempts>]
default: 1 attempt, no retries
[-truststore <file name of the trust store for HTTPS>]
default: $JAVA_HOME/lib/security/cacerts
[-trustpwd <password for the trust store for HTTPS>]
default: <empty>
[-trusttype <file type of the trust store for HTTPS>]
default: jks
[-keystore <file name of the key store for HTTPS>]
default: $JAVA_HOME/lib/security/cacerts
[-keypwd <password for the key store for HTTPS>]
default: <empty>
[-keytype <file type of the key store for HTTPS>]
default: jks
[-credentialexport]
enables export and import of credential secrets
[-protocol <protocol>]
selects the protocol (if portal config URL
specified https:, otherwise this parameter is ignored).
default: SSL
[-encryptionPassphrase <passphrase>]
passphrase for credential encryption and decryption

try putting it in a non virtualized directory, like c:\xmlaccess instead of on the desktop.
create a folder in that directory called plugins
Please these jars in there
bootstrap.jar, com.ibm.ffdc.jar, com.ibm.ws.emf.jar, com.ibm.ws.runtime.jar, j2ee.jar, org.eclipse.emf.common.jar, org.eclipse.emf.ecore.jar, wp.base.jar, wp.engine.impl.jar, wp.utilities.streams.jar,wp.xml.client.jar
I was using a 1.8 jdk
Then set up your bat file like this
#echo off
set WAS_HOME=C:\xmlacess\plugins
set cpath=%WAS_HOME%\com.ibm.ws.runtime.jar
set cpath=%cpath%;%WAS_HOME%\bootstrap.jar
set cpath=%cpath%;%WAS_HOME%\com.ibm.ws.emf.jar
set cpath=%cpath%;%WAS_HOME%\org.eclipse.emf.ecore.jar
set cpath=%cpath%;%WAS_HOME%\org.eclipse.emf.common.jar
%JAVA% -classpath c:\xmlaccess\plugins\wp.xml.client.jar;%WAS_HOME%\wp.base.jar;%WAS_HOME%\wp.engine.impl.jar;%WAS_HOME%\wp.utilities.streams.jar;%WAS_HOME%\j2ee.jar;%WAS_HOME%\com.ibm.ffdc.jar;%cpath% com.ibm.wps.xmlaccess.XmlAccess %*

Related

Using a .pfx file for Solr HTTPS

EDIT: SOLUTION: NEVER USE SPECIAL CHARACTERS IN YOUR SOLR.IN.CMD. IT WILL NOT WORK!
I have a certificate named "cert.pfx" from our organisation with the passwort "123456".
I want to use this file to enable https in Solr. I converted the pfx file to the desired .jks file:
keytool -importkeystore -srckeystore cert.pfx -srcstoretype pkcs12 -destkeystore solr-ssl.keystore.jks -deststoretype JKS
keytool -importkeystore -srckeystore solr-ssl.keystore.jks -destkeystore solr-ssl.keystore.jks.p12 -srcstoretype jks -deststoretype pkcs12
D:\openssl\openssl.exe pkcs12 -in solr-ssl.keystore.jks.p12 -out solr-ssl.pem
Output:
solr-ssl.keystore.jks
solr-ssl.keystore.jks.p12
solr-ssl.pem
Solr.in.cmd file:
REM Enables HTTPS. It is implictly true if you set SOLR_SSL_KEY_STORE. Use this config
REM to enable https module with custom jetty configuration.
set SOLR_SSL_ENABLED=true
REM Uncomment to set SSL-related system properties
REM Be sure to update the paths to the correct keystore for your environment
set SOLR_SSL_KEY_STORE=D:\openssl\solr-ssl.keystore.jks
set SOLR_SSL_KEY_STORE_PASSWORD=123456
set SOLR_SSL_TRUST_STORE=D:\openssl\solr-ssl.keystore.jks
set SOLR_SSL_TRUST_STORE_PASSWORD=123456
REM Require clients to authenticate
set SOLR_SSL_NEED_CLIENT_AUTH=false
REM Enable clients to authenticate (but not require)
set SOLR_SSL_WANT_CLIENT_AUTH=false
REM Verify client hostname during SSL handshake
REM set SOLR_SSL_CLIENT_HOSTNAME_VERIFICATION=false
REM SSL Certificates contain host/ip "peer name" information that is validated by default. Setting
REM this to false can be useful to disable these checks when re-using a certificate on many hosts
set SOLR_SSL_CHECK_PEER_NAME=true
REM Override Key/Trust Store types if necessary
set SOLR_SSL_KEY_STORE_TYPE=JKS
set SOLR_SSL_TRUST_STORE_TYPE=JKS
When I am trying to start Solr, I get the following error:
Caused by: java.security.PrivilegedActionException: java.io.IOException: Keystore was tampered with, or password was incorrect
at java.security.AccessController.doPrivileged(AccessController.java:738)
at org.eclipse.jetty.xml.XmlConfiguration.main(XmlConfiguration.java:1746)
... 7 more
Why do I get this error, when I clearly used "123456" in every step?
Looks like the issue is when you have special characters ie: ! # # $ in the password you can't include these in a SOLR config file.

How to change log directory location in postgresql 9.4?

my current log_directory path is
**/opt/demo/PostgreSQL/9.4/data/pg_log**
I'm trying to change the log directory path to
**/logs/demo/**
The server won't start when i uncomment the log path and it starts only when its default.
The postgresql.conf file looks like
# ERROR REPORTING AND LOGGING
#------------------------------------------------------------------------------
# - Where to Log -
log_destination = 'stderr' # Valid values are combinations of
# stderr, csvlog, syslog, and eventlog,
# This is used when logging to stderr:
logging_collector = on
# These are only used if logging_collector is on:
#log_directory = '/logs/etbos/demo/' #directorywherelogfiles are written
#log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' # log file name pattern,
# These are relevant when logging to syslog:
#syslog_facility = 'LOCAL0'
#syslog_ident = 'postgres'
# This is only relevant when logging to eventlog (win32):
#event_source = 'PostgreSQL'
So this is what I supposed :) You need to grant permissions to the new log directory to postgres user.
You can do this using f.e.:
sudo chown postgres:postgres /your/new/log/dir/path
Answering your other question:
To allow TCP/IP connections from remote hosts you need to edit pg_hba.conf file.
You can allow ALL TCP/IP connections by adding a line like this:
host all all 0.0.0.0/32 md5
There are five parameters above, you can read about them in the pg_hba.conf file in the comments at the top of the file, but in short they mean:
[connection_type] [database_name] [user_name] [remote_ip/mask] [auth_type]

How to restore Microsoft SQL Server database from .sql file? [duplicate]

I use RedGate SQL data compare and generated a .sql file, so I could run it on my local machine. But the problem is that the file is over 300mb, which means I can't do copy and paste because the clipboard won't be able to handle it, and when I try to open the file in SQL Server Management Studio I get an error about the file being too large.
Is there a way to run a large .sql file? The file basically contains data for two new tables.
From the command prompt, start up sqlcmd:
sqlcmd -S <server> -i C:\<your file here>.sql
Just replace <server> with the location of your SQL box and <your file here> with the name of your script. Don't forget, if you're using a SQL instance the syntax is:
sqlcmd -S <server>\instance.
Here is the list of all arguments you can pass sqlcmd:
Sqlcmd [-U login id] [-P password]
[-S server] [-H hostname] [-E trusted connection]
[-d use database name] [-l login timeout] [-t query timeout]
[-h headers] [-s colseparator] [-w screen width]
[-a packetsize] [-e echo input] [-I Enable Quoted Identifiers]
[-c cmdend] [-L[c] list servers[clean output]]
[-q "cmdline query"] [-Q "cmdline query" and exit]
[-m errorlevel] [-V severitylevel] [-W remove trailing spaces]
[-u unicode output] [-r[0|1] msgs to stderr]
[-i inputfile] [-o outputfile] [-z new password]
[-f | i:[,o:]] [-Z new password and exit]
[-k[1|2] remove[replace] control characters]
[-y variable length type display width]
[-Y fixed length type display width]
[-p[1] print statistics[colon format]]
[-R use client regional setting]
[-b On error batch abort]
[-v var = "value"...] [-A dedicated admin connection]
[-X[1] disable commands, startup script, environment variables [and exit]]
[-x disable variable substitution]
[-? show syntax summary]
I had exactly the same issue and had been struggling for a while then finally found the solution which is to set -a parameter to the sqlcmd in order to change its default packet size:
sqlcmd -S [servername] -d [databasename] -i [scriptfilename] -a 32767
You can use this tool as well. It is really useful.
BigSqlRunner
NB: Broken link, so have updated it.
Take command prompt with administrator privilege
Change directory to where the .sql file stored
Execute the following command
sqlcmd -S 'your server name' -U 'user name of server' -P 'password of server' -d 'db name'-i script.sql
I am using MSSQL Express 2014 and none of the solutions worked for me. They all just crashed SQL. As I only needed to run a one off script with many simple insert statements I got around it by writing a little console app as a very last resort:
class Program
{
static void Main(string[] args)
{
RunScript();
}
private static void RunScript()
{
My_DataEntities db = new My_DataEntities();
string line;
System.IO.StreamReader file =
new System.IO.StreamReader("c:\\ukpostcodesmssql.sql");
while ((line = file.ReadLine()) != null)
{
db.Database.ExecuteSqlCommand(line);
}
file.Close();
}
}
Run it at the command line with osql, see here:
http://metrix.fcny.org/wiki/display/dev/How+to+execute+a+.SQL+script+using+OSQL
Hope this help you!
sqlcmd -u UserName -s <ServerName\InstanceName> -i U:\<Path>\script.sql
I had similar problem. My file with sql script was over 150MB of size (with almost 900k of very simple INSERTs). I used solution advised by Takuro (as the answer in this question) but I still got error with message saying that there was not enough memory ("There is insufficient system memory in resource pool 'internal' to run this query").
What helped me was that I put GO command after every 50k INSERTs.
(It's not directly addressing the question (file size) but I believe it resolves problem that is indirectly connected with large size of sql script itself. In my case many insert commands)
==> sqlcmd -S [servername] -d [databasename] -i [scriptfilename] -a 32767
I have successfully done with this command with 365mb sql file.
this syntax runs in about 15 minutes.
it helped me solve a problem that took me a long time to figure out
Run the script file
Open a command prompt window.
In the Command Prompt window, type: sqlcmd -S <ServerName\InstanceName> -i C:\yourScript.sql
Press ENTER.
Your question is quite similar to this one
You can save your file/script as .txt or .sql and run it from Sql Server Management Studio (I think the menu is Open/Query, then just run the query in the SSMS interface). You migh have to update the first line, indicating the database to be created or selected on your local machine.
If you have to do this data transfer very often, you could then go for replication. Depending on your needs, snapshot replication could be ok. If you have to synch the data between your two servers, you could go for a more complex model such as merge replication.
EDIT: I didn't notice that you had problems with SSMS linked to file size. Then you can go for command-line, as proposed by others, snapshot replication (publish on your main server, subscribe on your local one, replicate, then unsubscribe) or even backup/restore
The file basically contain data for two new tables.
Then you may find it simpler to just DTS (or SSIS, if this is SQL Server 2005+) the data over, if the two servers are on the same network.
If the two servers are not on the same network, you can backup the source database and restore it to a new database on the destination server. Then you can use DTS/SSIS, or even a simple INSERT INTO SELECT, to transfer the two tables to the destination database.
There is probably another way for all the fellows still encountering problems importing really large SQL dumps.
What also be considered when possible: If you have access to the server you could export the database in multiple parts, like first the structure, then per table (or related objects) an export of the data in smaller pieces, instead of one big file.
When you don't have access to server and/or required to use the existing big file, you could try to split them into parts with SQLDumpSplitter: https://philiplb.de/sqldumpsplitter3/.
Then import the pieces to get a full copy of the database.
Good luck, guys.

hiredis getting err 1 REDIS_ERR_IO No such file or directory

redisAsyncConnectUnix() returns a redisAsyncContext(not NULL) that has err=1 i.e REDIS_ERR_IO with errstr "No such file or directory" , what file/directory are they looking for ?
Redis is up and running, was able to SET from redis-cli
redisAsyncConnectUnix is used to connect to the server using a Unix Domain Socket, which is materialized by a pseudo-file. The path of this file has to be provided as a parameter:
redisAsyncContext *redisAsyncConnectUnix(const char *path);
For instance, you could use:
path = /tmp/redis.socket
However, you need to check that the server (which has to run on the same machine than the client), is listening to the same path. Check the definition of the following parameters in the Redis configuration file:
unixsocket /tmp/redis.socket
unixsocketperm 755
Make sure the path is valid, and access rights are correct. You can check that the configuration is ok on server-side by running:
redis-cli -s /tmp/redis.socket

SQLPLUS BAT File

I have a BAT file that runs a script on oracle :
sqlplus myuser/mypassword#mydatabase #C:\runthisfile.sql
I want to distribute this to other users (that don't necessarily know how to modify a BAT file).
I want the dos prompt to ask the user to enter their user and password (obviously I don't want to give them my connection details). Have tried all types of combination but all that happens is that I end up with SQL>......
Am stumped!
You can use the SET command with the /P argument in order to prompt the user for text during a batch file run, for example:
SET /P variable=Please enter text
This will then fill variable with whatever they type before hitting return.
#ECHO OFF
SET /P uname=Username:
SET /P pass=password:
This is a simple program which will prompt the first for a username, then a password.
You should then be able to pass this as an argument to sqlplus:
sqlplus %uname%/%pass%#mydatabase #C:\runthisfile.sql
Regarding with SQLPlus stop, doing nothing:
Sometimes SQLPlus finish with ... meaning that is waiting for something more.
Try to add "/" (without quotes) in the end of your SQL file to execute it.
I hope it will help...
It is the very simple code for opening SQLPLUS without entering usename and password manually.
sqlplus -L UserName/Password
For example : sqlplus -L Rak4ak#sun64/rk4
For Understanding :
sqlplus [ [] [{logon | /nolog}] [] ]
is: [-C ] [-L] [-M ""] [-NOLOGINTIME] [-R ]
[-S]
-C <version> Sets the compatibility of affected commands to the
version specified by <version>. The version has
the form "x.y[.z]". For example, -C 10.2.0
-L Attempts to log on just once, instead of
reprompting on error.
-M "<options>" Sets automatic HTML markup of output. The options
have the form:
HTML [ON|OFF] [HEAD text] [BODY text] [TABLE text]
[ENTMAP {ON|OFF}] [SPOOL {ON|OFF}] [PRE[FORMAT] {ON|OFF}]
-NOLOGINTIME Don't display Last Successful Login Time.
-R <level> Sets restricted mode to disable SQL*Plus commands
that interact with the file system. The level can
be 1, 2 or 3. The most restrictive is -R 3 which
disables all user commands interacting with the
file system.
-S Sets silent mode which suppresses the display of
the SQL*Plus banner, prompts, and echoing of
commands.
is: {[/][#] | / }
[AS {SYSDBA | SYSOPER | SYSASM | SYSBACKUP | SYSDG | SYSKM}] [EDITION=value]
Specifies the database account username, password and connect
identifier for the database connection. Without a connect
identifier, SQL*Plus connects to the default database.
The AS SYSDBA, AS SYSOPER, AS SYSASM, AS SYSBACKUP, AS SYSDG,
and AS SYSKM options are database administration privileges.

Resources