Powered By

Skin Design:
Free Blogger Skins

Powered by Blogger

Cari Blog Ini

18 Agustus 2020

SSH: Refused connect from....

 Pada suatu hari....

Seseorang membutuhkan akses ke server Centos 7 untuk setting web. Untuk itu saya open port SSH di public. Settingan di router telah sesuai, saya coba via laptop yang terhubung ke jaringan lokal dan konek ke ssh dengan ip publik bisa. Namun...ketika saya coba via hp gagal. Begitu pula via laptop.


Hmm banyak kemungkinan, maka saya coba satu per satu.
Pertama saya cek di settingan sshd_config. Tidak ada settingan khsusu yang melarang ip public melakukan koneksi. 
Kedua, saya coba disable firewall, mungkin ke blok di situ. Ternyata sama saja tetap tidak bisa.
Ketiga, coba saya cek di SELinux. Ternyata sudah disable.

Saya coba cek di log nya, ternyata ada error ini.

sshd[7302]: refused connect from

Berarti sebenarnya sudah konek ke server, namun di reject. 

Ah, saya teringat. Dulu pernah setting sesuatu dengan harapan ip public diblok ketika melakukan brute force. Cuma saya lupa...
Akhirnya cari di internet, dengan kata kunci: Disable SSH from specific IP Address...Dan Alhamdulillah, di situ disebutkan salah satunya adalah dengan menambah di settingan /etc/hosts.allow

sshd : localhost : allow
sshd : ***** : allow
sshd : ***** : allow
sshd : ALL : deny

Setelah saya remark, maka akses ssh dari luar berjalan dengan normal.

NB: Jangan lupa, nanti ketika akses telah selesai, bisa di hilangkan remark nya.


29 Juli 2020

AX error: Failed to create a session; confirm that the user has the proper privileges….

Hari ini kita dikerjain sama AX!! Awalnya saya lagi bersih-bersih class yang sudah tidak dipakai lagi, karena sudah digantikan dengan class lain. 
Saya hapus lah class-class tersebut. Beberapa menit kemudian user complain ada problem ketika proses Goods Receipt. Saya cek errornya ternyata masalah class yang saya hapus tadi.
Wah ternyata ada satu class yang masih dipakai di situ. Ya sudah saya restore lah class tersebut. Setelah restore di incremental CIL. Astagfirullah..ada error. Bilangnya class tersebut sudah ada. Error duplicate. Ya sudah saya rename class tersebut dan incremental CIL lagi. Hasil nya sukses.

Balik lagi ke user tadi, saya coba lagi. Kali ini errornya beda. Yaitu Failed to create a session; confirm that the user has the proper privileges…. 
Wah apa lagi ini. Saya log off user, login lagi tetap sama. Dan parahnya user saya yang admin pun mengalami hal yang sama. Yang tidak terpengaruh hanya user Administrator. Wah mulai keringat dingin ini...
Cari di google, nemu artikel ini:
https://stoneridgesoftware.com/5-tips-to-resolve-the-ax-error-failed-to-create-a-session-confirm-that-the-user-has-the-proper-privileges/

Langkah no 1 tidak sesuai kondisi disini karena cuma ada satu partisi. Langkah no 2 tidak dikerjakan karena saya belum pahan apa maksudnya. Kemudian langkah no 3 belum dikerjakan karena akan mengganggu operasional aplikasi. Saya asumsi yang saya lakukan hanyalah hal kecil yang terjadi di luar main class AX. (Saya lupa kalau object PurchEditLines memanggil class yang saya hapus tersebut adalah sumber masalahnya). Langkah no 4 sudah saya kerjakan, hasilnya tetap nihil. Langkah no 5 juga saya coba dengan membuat user baru, namun hasil sama. 

Akhirnya setelah tidak menemukan hasil, dan user yang error tambah banyak. Kita putuskan melakukan Full CIL. Namun kembali lagi ke error Duplicate type with name ...

Di google rata-rata menyarankan untuk:

  1. Stop all AOS instances
  2. Delete all files on the AOS server under C:\Program Files\Microsoft Dynamics AX\60\Server\\bin\XppIL
  3. Connect to the model db via SQL Management studio
  4. Truncate the table SYSXPPASSEMBLY which lists all of the files found in step 2
  5. You can do this via the command: TRUNCATE TABLE SYSXPPASSEMBLY
  6. Start 1 AOS instance
  7. Run Full CIL
            Yang penting adalah pada point 4. Karena ketika point 4 tidak di jalankan maka tetap gagal.  Yang dapat dipelajari dari kejadian ini adalah: Jangan hapus object di AX kemudian restore kembali tanpa proses CIL sebelumnya. Harusnya setelah hapus object diakukan proses CIL, baru kemudian restore lagi dan CIL lagi.

            26 Maret 2020

            Koneksi External Database MS Acess di Dynamics AX 2012

            Jika dulu pernah saya post mengenai koneksi database ekseternal di Ms Dynamics AX 2012 dengan database eksternalnya SQL Server, maka kali ini saya mencoba koneksi pada database Ms Access!

            https://shindu-b-raditya.blogspot.com/2016/10/problem-koneksi-eksternal-database-sql.html

            Berbeda dengan database SQL Server dimana merupkan client-server database, maka database Access adalah File Database. Database bersifat local karena untuk membuka database tersebut harus membuka file mdb nya. Maka harus akses via network share agar dapat konek dengan database tersebut jika diakses bukan dari server/pc itu sendiri.

            Langkah-langkah nya adalah sebagai berikut.

            Pertama, persiapkan dulu agar folder lokasi file MDB tersebut dapat di akses dari luar yaitu dengan men-share folder nya. Karena PC tersebut tidak konek domain maka saya membuat user local baru di PC tersebut dan membuka share untuk user tersebut.

            Kedua, persiapkan ODBC.
            Dikarenakan AX memiliki dua mode aplikasi (mode server 64 bit, dan mode client 32 bit) maka kita perlu memilih akan menggunakan mode yang mana. Jika jalan di client maka harus membuat ODBC 32 bit. Sedang jika menggunakan run on server/batch job, maka gunakan ODBC 64 bit. Untuk ODBC 64 bit bisa download driver Access (Access Database Engine)  https://www.microsoft.com/en-us/download/details.aspx?id=54920

            Perlu di pertimbangkan, jika kita jalan di sisi Client, maka setting ODBC juga perlu di setting di setiap client AX yang menjalankan fungsi akses ke eksternal DB tersebut. Sedang jika kita jalan di sisi server, maka ODBC cukup di setting di Server AOS. Karena itu akhirnya saya putuskan untuk jalankan aplikasi di sisi server, agar juga nanti saya bisa membuat job batch yang secara periodik melakukan download data.

            Pada server AOS jika driver belum di install maka saat menambah ODBC hanya akan muncul SQL Server.

            Setelah di install maka pilihannya menjadi:

            Terlihat versi drivernya adalah 14 (office 2010). 

            Setelah driver untuk ms Access terinstall, maka dilanjutkan membuat ODBC baru dengan target ke file .mdb yang ada di PC.



            Langkahnya isi nama datasource, kemudian select untuk memilih file mdb nya. Maka isikan langsung path shared folder nya. Dan kemudian error! 

            Error tersebut terjadi karena saat akan masuk ke shared folder tersebut membutuhkan akun. Lha gimana cara ngisi akunnya gimana? Maka kita lakukan adalah dengan konek ke folder tersebut via File Explorer, maka akan ditanya user dan password untuk masuk. Masukkan user dan password kemudian jangan lupa centang Remember My Credential agar data user dan password tersimpan. Atau dengan cara manual kita dapat langsung tambah data user dan password pada Credential Manager

            Setelah user dan password disimpan, ulangi proses Select tadi. Jika semua benar, akan muncul file mdb yang ada di dalam folder sharing tersebut. Pilih file yang dimaksud.
            Selanjutnya masukkan password untuk membuka file jika pada bagian Advanced.
            Saat saya setting ODBC ini terkadang beberapa kali tampilan ODBC tertutup sendiri. Jika seperti itu maka ulangi lagi prosesnya sampai akhirnya benar-benar tersimpan odbc nya.

            Oh ya, server AX berjalan sesuai user service nya. Maka semua proses ODBC diatas dilakukan pada user service AX tersebut.

            Ketiga, coding di AX.
            Coding di AX tidak ada hal yang khusus. Untuk membuka koneksi bisa langsung menggunakan kode di bawah ini:

            // Set the information on the ODBC.
            loginProperty = new LoginProperty();

            loginProperty.setDSN(nama DSN);


            odbcConnection = new OdbcConnection(loginProperty);
            //Assert permission for executing the sql string.
            perm = new SqlStatementExecutePermission(query String);
            perm.assert();

            //Prepare the sql statement.
            statement = odbcConnection.createStatement();
            resultSet = statement.executeQuery(query String);

            while (resultSet.next()){
                //TODO: READ per ROW
                ...
                ...
            }
            resultSet.close();
            statement.close();

            Pada case ini coding tersebut saya pasang pada sebuah Class, kemudian class tersebut di panggil di class lain yang mengimplementasikan RunBaseBatch dan class ini di jalankan via batch job.

            Jika ingin memanggil fungsi tersebut di Menu, maka jangan lupa set menu tersebut run on server.


            18 Februari 2020

            Error Deploy SSRS Report (AX). The network path was not found.

            Setelah install ulang server database AX (beserta SSRS server nya) terjadi masalah saat mencoba deploy SSRS report dari luar server tersebut. Sebelumnya saya biasa mendeploy report via Laptop kerja. Namun saat ini tidak bisa. Keluar error:

            Error 1 An error occurred : The network path was not found.
            If User Account Control (UAC) is enabled on the machine, close the application, right-click the application, and then click Run as administrator.

            Error 2 The deployment was aborted. You do not have privileges to deploy to server:....

            Padahal untuk proses Build atau Rebuild normal-normal saja. Manun error saat deploy baik via Visual Studio Shell, Powershell, atau AOT Ax itu sendiri. Ketika saya coba deploy di server langsung ternyata berhasil. 

            Saya cari di internet belum menemukan cara yang ampuh. User sudah saya tambahkan sebagai administrator di server, begitu pula di SSRS Manager. Tetap tidak bisa deploy dengan error yang sama. Termasuk pula saya coba disable UAC.

            Akhirnya setelah ber minggu-minggu saya lupakan masalah ini dikarenakan sudah jarang membuat atau mengedit report SSRS, saat ini saya mendapatkan jawaban yang tepat!

            Saya teringat saat mencoba menginstall Veeam di server coba-coba. Saat akan menambah server keluar error yang mirip: The network path was not found.
            Dan permasalahannya adalah karena service file sharing nya tidak menyala!

            Ketika saya nyalakan service file sharing yang yang terletak di Network Device, maka semua berjalan dengan normal.
            Centang ini untuk enable file sharing